摘自onefish資料庫
1. 計算年數
你想通過生日來計算這個人有幾歲了。
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;
2. 兩個時間的差
取得兩個 datetime 值的差。假設 dt1 和 dt2 是 datetime 類型,其格式為 ‘yyyy-mm-dd hh:mm:ss’,那麼它們之間所差的秒數為:
除以60就是所差的分鐘數,除以3600就是所差的小時數,再除以24就是所差的天數。
3. 顯示某一列出現過N次的值
SELECT id
FROM tbl
GROUP BY id
HAVING COUNT(*) = N;
4. 計算兩個日子間的工作日
所謂工作日就是除出周六周日和節假日。
SELECT COUNT(*)
FROM calendar
WHERE d BETWEEN Start AND Stop
AND DAYOFWEEK(d) NOT IN(1,7)
AND holiday=0;
5. 查找表中的主鍵
SELECT k.column_name
6. 查看你的數庫有多大
SELECT
7.當你想要用字符串當成數字類型作為order by的字段時
SELECT * FROM `uchome_plug_collect_in` WHERE `collectid` = 4744346 ORDER BY CAST(unote AS SIGNED) DESC SELECT * FROM `uchome_plug_collect_in` WHERE `collectid` = 4744346 ORDER BY `unote`+0 DESC
8.查詢數據大小
SELECT CONCAT( ROUND( ( INDEX_LENGTH + DATA_LENGTH ) /1024 /1024, 2 ) , 'MB' ) AS '總大小', CONCAT( ROUND( DATA_LENGTH /1024 /1024, 2 ) , 'MB' ) AS '數據大小', CONCAT( ROUND( INDEX_LENGTH /1024 /1024, 2 ) , 'MB' ) AS '索引大小' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '數據庫名' AND TABLE_NAME = '表名'