我正在尝试在SQL select语句中设置DateTime的精度。在进入查询之前我无法执行此操作。我正在使用SQL Server 2008。
目前的格式是:
2012-05-14 14:54:45.307
我想继续从DateTime中删除毫秒和秒钟给我:
2012-05-14 14:54
我不确定是否可以这样做我真的希望如此,谢谢。
答案 0 :(得分:1)
删除它们:
update tablename
set datecolumn = DATEADD(ms, -DATEPART(ms, datecolumn), datecolumn)
答案 1 :(得分:1)
看起来这比其他选项更简单(没有字符串转换或日期数学):
SELECT CONVERT(SMALLDATETIME, GETDATE());
如果你仍然需要它是一个明确的DATETIME(例如,如果你的应用程序将对次要类型更改进行barf),你可以将它包装在另一个转换中:
SELECT CONVERT(DATETIME, CONVERT(SMALLDATETIME, GETDATE()));
这仍然具有细微的粒度,但将是一个正确的DATETIME类型,其余为零。
答案 2 :(得分:0)
你不能并保持DateTime投射。但是,如果您希望将其格式化为display(VARCHAR),则可以使用CONVERT,如下所示:
CONVERT(VARCHAR(16),GETDATE(),120)
答案 3 :(得分:0)
SELECT SUBSTRING(CONVERT(VARCHAR, GETDATE(), 120), 1, 16)
或者避免声明没有长度的VARCHAR:
SELECT SUBSTRING(CONVERT(VARCHAR(16), GETDATE(), 120), 1, 16)