如何从Microsoft SQL Server 2014的datetime列中仅提取日期?
在SQL Server 2014中从datetime列提取日期部分的方法
针对你的需求,有几种简单有效的方法可以实现从datetime列中仅提取日期部分:
使用
CONVERT函数(纠正你之前的参数顺序错误):SELECT CONVERT(date, name_of_the_column) AS 提取的日期 FROM 你的表名;date类型会自动截断时间部分,只保留年-月-日格式的日期信息。使用
CAST函数,语法更简洁:SELECT CAST(name_of_the_column AS date) AS 提取的日期 FROM 你的表名;效果和
CONVERT(date, ...)完全一致,两种方法任选其一即可。如果你需要保留datetime类型但仅保留日期(时间部分为00:00:00),可以用
DATEADD+DATEDIFF的组合:SELECT DATEADD(day, DATEDIFF(day, 0, name_of_the_column), 0) AS 仅日期的datetime FROM 你的表名;这个方法通过计算目标日期与"0"日期(1900-01-01)的天数差,再将该天数加回"0"日期,从而得到去除时间的datetime值。
你之前的错误是把CONVERT的参数顺序搞反了,正确的格式是CONVERT(目标数据类型, 要转换的列/值),而你写的CONVERT(name_of_the_column, GETDATE())相当于把当前时间(GETDATE())转换成列的类型,自然只会返回服务器当前时间。
内容的提问来源于stack exchange,提问作者Leandro Torres
相关产品推荐
相关产品推荐

