[英]SQL Server DATEPART() function
今天,我在Datepart()
上写了两个查询,并在下面得到了不同的返回值
查询1:
Select Datepart(day,'2015-07-05')
返回“ 5”,这是我期望的。
查询2:
Select Datepart(day, 2015-07-05)
返回“ 27”,这有点有趣,我不知道如何返回27。
这两个查询之间的区别是,一个查询的日期在“”之内,另一个查询的日期没有。
有人可以帮我吗?
2015-07-05
只是一个数学表达式,它的整数等于2003。(从2015年减去7得到2008,然后减去5)
当将int
为datetime
时,将2003年评估为'1905-06-27'
,因为将int
为datetime
工作原理与将天数加到1900年1月1日的基准日期相同(即等于DATEADD(DAY, 2003,'19000101')
)。
这就是27的来历。
在SQL Server中表示日期文字的正确方法是使用字符串'2015-07-05'
(ISO格式-对于较新的日期时间日期类型而言是明确的)或'20150705'
(对于旧数据类型而言而言是明确的)或使用ODBC格式 { d '2015-07-05' }
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.