MySQL對于日期的處理應該遵循: 1、無論如何,日期的格式必須為yyyy-mm-dd,雖然其他格式也行,但是這種方式排出了多義性,(04/05/2016) 2、總是應該使用4位數字的年份。雖然支持2位數字的年份,但是使用完整的4位數字年份更可靠。
select cust_id,order_num from orders where order_date = ‘2015-09-01’;
思考:一般情況下,使用這種方式可以檢索的數據,但是, where order_date = ‘2015-09-01’是可靠的嗎?

order_date的數據類型為datetime,這種類型儲存日期及時間值,樣例表中的值全都具有時間值00:00:00, 但在實際中,可能并不總是這樣。如果利用當前日期和時間存儲訂單日期(不僅知道訂單日期,還知道下訂單當天的時間),怎么辦? 例如:存儲的order_date=’2005-09-01 11:35:26’,則where order_date = ‘2015-09-01’失敗

于是 MySQL時間處理函數就有用了。
我們指示MySQL僅將給出的日期與列中的日期部分進行比較,而不是將給出的日期與整個列值進行比較 select cust_id,order_num from orders where Date(order_date)= ‘2005-09-01’

注意: 如果要的僅僅是日期,請使用Date()函數,即使你知道相對應的列只包含日期也應該如此。這樣的話,即使以后由于某種原由使用了時間值,你的sql代碼也不用改變。當然也是存在Time()函數,在你只想要時間時就要使用它
思考:在某些情況,我們如果想要檢索2005年9月份的所有訂單。簡單的相等測試就不行了。 解決:兩種方式。 一、select cust_id , order_num,order_date from orders where Date(order_date) between ‘2005-09-01’ AND ‘2005-09-30’; 二、select cust_id , order_num,order_date from orders where Year(order_date) =2005 and Month(order_date) = 9; 
注意:一般情況下,我們都是利用第二種進行,因為第二種方式,不需要考慮每個月有多少天,或不需要考慮閏年2月的方法。
日期常用函數 
新聞熱點
疑難解答