今天我要做一個程序可以實現查詢一天,查詢一周,查詢一個月的數據功能,下面我把這些實現的sql日期查詢語句給大家總結分享一下.
我的日期:首先我們獲取到的日期格式是這樣的:2009-2-12或者2009-3-3或者2009-10-12,我們在組合sql語句的時候可以這樣:(分了三個例子),代碼如下:
@1select * from user where birthday>'2009-2-3' and birthday<'2009-4-3'
這樣我們能夠查到所有包括2009-2-3并且大于2009-2-3的所有的用戶信息。
@2如果我們是這樣組合的,代碼如下:
select * from user where birthday>'2009-2-3'
那么我們就會查到等于2009-2-3并且和大于2009-2-3號的所有信息.
@3如果我們是這樣的組合,代碼如下:
select * from user where birthday<'2009-2-3'
那么我們會查詢到包括2009-2-3并且小于2009-2-3的所有用戶信息.
這里可能是mysql自己的一個實現機制,不用寫=號,=號也包含在我們寫的sql語句中了。并且在組合這個sql語句的時候要注意''的用法,如果省去了''那么我們就會吃大虧的.
還有2009-2-3這個數值的獲取.
查詢一天,代碼如下:
select * from table where to_days(column_time) = to_days(now());
select * from table where date(column_time) = curdate();
查詢一周,代碼如下:
select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);
查詢一個月,代碼如下:
select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);
使用MYSQL時間戳查詢時間段的常用函數.
UNIX_TIMESTAMP(date):如果沒有參數調用,返回一個Unix時間戳記(從’1970-01-01 00:00:00′GMT開始的秒數),如果UNIX_TIMESTAMP()用一個date參數被調用,它返回從’1970-01-01 00:00:00′ GMT開始的秒數值,date可以是一個DATE字符串、一個DATETIME字符串、一個TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地時間的一個數字,代碼如下:
- mysql> select UNIX_TIMESTAMP();
- -> 882226357
- mysql> select UNIX_TIMESTAMP(’1997-10-04 22:23:00′);
- -> 875996580
當UNIX_TIMESTAMP被用于一個TIMESTAMP列,函數將直接接受值,沒有隱含的“string-to-unix-timestamp”變換,代碼如下:
FROM_UNIXTIME(unix_timestamp)
以’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回unix_timestamp參數所表示的值,取決于函數是在一個字符串還是或數字上下文中被使用,代碼如下:
- mysql> select FROM_UNIXTIME(875996580);
- -> ‘1997-10-04 22:23:00′
- mysql> select FROM_UNIXTIME(875996580) + 0;
- -> 19971004222300 --Vevb.com
- FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 時間標記的一個字符串,根據format字符串格式化,format可以包含與DATE_FORMAT()函數列出的條目同樣的修飾符,代碼如下:
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(), ‘%Y %D %M %h:%i:%s %x’);
-> ‘1997 23rd December 03:43:30 x’
通過 UNIX_TIMESTAMP 函數把 MySQL 數據庫中的 date 類型數據轉換成 unix timestamp 形式的一個整形數字:select UNIX_TIMESTAMP(’2006-02-28′) testdate;
|
新聞熱點
疑難解答