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() 格式化日期時間顯示