SQL入門教學手冊login
SQL入門教學手冊
作者:php.cn  更新時間:2022-04-12 14:15:40

SQL 日期



SQL 日期(Dates)

Note當我們處理日期時,最難的任務恐怕是確保所插入的日期的格式,與資料庫中日期列的格式相符。

只要您的資料包含的只是日期部分,執行查詢就不會出問題。但是,如果涉及時間部分,情況就有點複雜了。

在討論日期查詢的複雜度之前,我們先來看看最重要的內建日期處理函數。


MySQL Date 函數

下面的表格列出了MySQL 中最重要的內建日期函數:

##函數描述NOW()傳回目前的日期和時間CURDATE()傳回目前的日期CURTIME()#傳回目前的時間DATE()提取日期或日期/時間表達式的日期部分EXTRACT()傳回日期/時間的單獨部分DATE_ADD()向日期新增指定的時間間隔#DATE_SUB()從日期減去指定的時間間隔DATEDIFF()傳回兩個日期之間的天數DATE_FORMAT() #用不同的格式顯示日期/時間


SQL Server Date 函數

#下面的表格列出了SQL Server 中最重要的內建日期函數:

函數描述##GETDATE()DATEPART()DATEADD() DATEDIFF()CONVERT()

SQL Date 資料類型

MySQL 使用下列資料類型在資料庫中儲存日期或日期/時間值:

  • DATE - 格式:YYYY-MM-DD

  • DATETIME - 格式:YYYY-MM-DD HH:MM:SS

  • # TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS

  • #YEAR - 格式:YYYY 或YY

SQL Server 使用下列資料類型在資料庫中儲存日期或日期/時間值:

  • DATE - 格式:YYYY-MM-DD

  • DATETIME - 格式:YYYY-MM-DD HH:MM:SS

  • SMALLDATETIME - 格式:YYYY-MM-DD HH:MM:SS

  • #TIMESTAMP - 格式:唯一的數字

註解:當您在資料庫中建立新表時,需要為列選擇資料類型!

如需了解所有可用的資料類型,請造訪我們完整的 資料類型參考手冊。


SQL 日期處理

Note如果不涉及時間部分,那麼我們可以輕鬆地比較兩個日期!

假設我們有如下的"Orders" 表:

傳回目前的日期和時間
傳回日期/時間的單獨部分
在日期中加或減指定的時間間隔
傳回兩個日期之間的時間
以不同的格式顯示日期/時間
#OrderId#ProductNameOrderDate
#1Geitost2008-11-11
2Camembert Pierrot2008-11-09
3#Mozzarella di Giovanni2008-11-11
#4Mascarpone Fabioli2008-10-29

現在,我們希望從上表中選取OrderDate 為"2008-11-11" 的記錄。

我們使用下面的SELECT 語句:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

#結果集如下所示:

##1# Geitost2008-11-11#3Mozzarella di Giovanni2008-11-11
OrderIdProductNameOrderDate
#現在,假設"Orders" 表如下所示(請注意"OrderDate" 列中的時間部分):

OrderIdProductNameOrderDate#1Geitost2008-11-11 13:23:442Camembert Pierrot2008-11-09 15:45:213Mozzarella di Giovanni2008-11-11 11:12:01##4#

如果我們使用和上面一樣的SELECT 語句:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

那麼我們將得不到結果!這是由於該查詢的日期不含時間部分。

提示:如果您希望讓查詢簡單且更容易維護,那麼請不要在日期中使用時間部分!


Mascarpone Fabioli2008-10-29 14:56:59