Share via


使用日期和時間資料

更新: 2006 年 4 月 14 日

SQL Server 2005 中的日期和時間資料類型類別目錄,是由下列資料類型所組成:

  • datetime
  • smalldatetime

datetimesmalldatetime 資料類型可讓您執行下列動作:

  • 輸入新的日期和時間,或變更現有的日期和時間。
  • 加上和減去日期。如需有關日期計算的詳細資訊,請參閱<+ (加) (Transact-SQL)>與<- (減) (Transact-SQL)>。
  • 搜尋特定的日期或時間。

您可以利用系統日期和時間函數,在 datetimesmalldatetime 資料類型執行算術計算。如需詳細資訊,請參閱<函數 (Transact-SQL)>。

以下是使用日期和時間資料的一些指導方針:

  • 若要搜尋完全相符的日期和時間,請使用等號 (=)。SQL Server 會傳回完全符合日、月、年的日期和時間值,並以 12:00:00:000 A.M. (預設值) 的精確時間表示。如需時間的詳細資訊,請參閱<時間格式>。

  • SQL Server 會在執行階段計算 datetime 常數。如果透過連接執行查詢,而連接是使用不同的語言與日期格式設定,那麼原先在另一種語言中日期格式有效的日期字串可能會變成無法辨識。例如,此檢視在語言設成美式英文的連接上可以正常執行,但連接如果使用其他語言設定就無法辨識:

    CREATE VIEW dbo.USA_Dates AS
    SELECT PurchaseOrderID, TotalDue
    FROM AdventureWorks.Purchasing.PurchaseOrderHeader
    WHERE OrderDate < 'May 1, 2002';
    

    利用不同語言設定的連接執行查詢時,如果查詢中使用 datetime 常數必須特別小心,要確保所有語言設定都可以接受該日期。在國際資料庫的永久性物件 (如資料表條件約束與檢視的 WHERE 子句) 中使用 datetime 常數時也同樣要小心。下例顯示一種方法,可確保 datetime 常數的解譯在所有的語言或日期格式連接設定中都正確無誤。

    CREATE VIEW dbo.International_Dates AS
    SELECT PurchaseOrderID, TotalDue
    FROM AdventureWorks.Purchasing.PurchaseOrderHeader
    WHERE OrderDate < CONVERT(DATETIME,'20020501',101);
    

    如需詳細資訊,請參閱<撰寫國際性通用的 Transact-SQL 陳述式>。

SQL Server 可辨識以單引號 (') 括住的日期和時間資料,格式如下:

  • 字母日期,如 'April 15, 1998'
  • 數字日期格式,如 '4/15/1998'
  • 未分隔的字串格式。例如,'19981207' 就是 1998 年 12 月 7 日。

請參閱

其他資源

日期和時間 (Transact-SQL)
資料類型 (Transact-SQL)
CAST 和 CONVERT (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助