SQL Date 日期時間
一般資料庫都有提供表示日期的資料型態 (Date Data Types)。
MySQL 中,有這些型態來表示日期:
DATE型態 - 格式是 YYYY-MM-DDDATETIME型態 - 格式是 YYYY-MM-DD HH:MI:SSTIMESTAMP型態 - 格式是 YYYY-MM-DD HH:MI:SSYEAR型態 - 格式是 YYYY
SQL Server 中,有這些型態來表示日期:
DATE型態 - 格式是 YYYY-MM-DDDATETIME型態 - 格式是 YYYY-MM-DD HH:MI:SSSMALLDATETIME型態 - 格式是 YYYY-MM-DD HH:MI:SS
日期查詢 (select date)
例如下面這張 Orders 資料表:
| OrderId | ProductName | OrderDate | 
|---|---|---|
| 1 | Geitost | 2018-12-11 | 
| 2 | Camembert Pierrot | 2018-11-09 | 
| 3 | Mozzarella di Giovanni | 2018-11-11 | 
| 4 | Mascarpone Fabioli | 2018-10-29 | 
從表中取得訂單日期為 2018-11-09 的訂單:
SELECT * FROM Orders WHERE OrderDate='2018-11-09'
返回的結果:
| OrderId | ProductName | OrderDate | 
|---|---|---|
| 2 | Camembert Pierrot | 2018-11-09 | 
日期比較 - 查詢某個日期區間內的資料 (select data from date range)
假如你想查詢上面 Orders 資料表中,所有 2018/11 月份的訂單。
你可以用比較運算子 >, =, <, >=, <=:
SELECT * FROM Orders WHERE OrderDate>='2018-11-01' AND OrderDate<'2018-12-01'
或用 BETWEEN 運算子:
SELECT * FROM Orders WHERE OrderDate BETWEEN '2018-11-01' AND '2018-11-30'
返回的結果:
| OrderId | ProductName | OrderDate | 
|---|---|---|
| 2 | Camembert Pierrot | 2018-11-09 | 
| 3 | Mozzarella di Giovanni | 2018-11-11 | 
日期操作相關的函數 (date functions)
MySQL
- NOW() 取得現在的日期時間
 - CURDATE() 取得現在的日期
 - CURTIME() 取得現在的時間
 - DATE() 取出日期時間中日期的部分
 - EXTRACT() 取出日期時間中特定的部分
 - DATE_ADD() 給日期時間增加指定的間隔
 - DATE_SUB() 給日期時間減去指定的間隔
 - DATEDIFF() 日期相減
 - TIMESTAMPDIFF() 日期時間相減
 - DATE_FORMAT() 格式化日期時間顯示
 
SQL Server
- GETDATE() 取得現在的日期時間
 - DATEPART() 取出日期時間中特定的部分
 - DATEADD() 增加或減少指定的時間間隔
 - DATEDIFF() 日期相減
 - CONVERT() 格式化日期時間顯示