繁体   English   中英

SQL Server DATEPART()函数

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

当将intdatetime时,将2003年评估为'1905-06-27' ,因为将intdatetime工作原理与将天数加到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM