[英]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.