簡體   English   中英

在SQL Server 2008中獲取日期

[英]Fetching date in SQL Server 2008

如何在SQL Server 2008的選擇查詢中拆分日期? 如果您在數據庫中輸入當前日期,並且數據庫中該列的類型是日期時間,則它將存儲日期和時間。如果有人只想從該列中獲取日期部分,那么他可以做什么。

我可以使用此查詢,但它不起作用。

SELECT DonorName, DATE(DateOfDonation) AS DateOfDonation 
FROM CreateDonorDetail;

它給錯誤-

'DATE'不是公認的內置函數名稱。

SQL Server 2008 具有 DATE數據類型-但是,如果您的數據庫是從SQL Server 2005升級的,並且未更改數據庫兼容性級別 ,則將其禁用。

像這樣檢查您的兼容性級別:

SELECT name, compatibility_level
FROM sys.databases
WHERE name = '-Your-database-name-here-'

如果此兼容性級別為90 ,則將其設置為SQL Server 2005,並且您將無法使用DATE 將兼容性級別更新為100:

ALTER DATABASE AdventureWorks2012
SET COMPATIBILITY_LEVEL = 100

現在您應該可以使用DATE

SELECT 
    DonorName, 
    CAST(DateOfDonation AS DATE) AS DateOfDonation 
FROM CreateDonorDetail;

轉換為Date類型:

SELECT DonorName, Cast(DateOfDonation as Date) AS DateOfDonation 
FROM CreateDonorDetail;

在SQL Server 2008之前,您可能會使用類似以下的內容:

SELECT DonorName, CAST(FLOOR(CAST(DateOfDonation AS FLOAT)) AS datetime) AS DateOfDonation   FROM CreateDonorDetail

宣告@DateTime DATETIME

SELECT @DateTime ='2010/05/20 11:21:13'

SELECT CONVERT(VARCHAR(10),@ DateTime,105)AS日期

結果將為dd-mm-yyyy格式(105)

  • 希望這會有所幫助

標記為答案是否有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM