我目前有日期格式2016-11-23 16:47:21.007
,我正在尝试使用此SQL转换它:
update user_table set login_date = CONVERT(datetime,login_date,120)
所以我只得到2016-11-23 16:47:21
但它目前只是保持相同的格式。
我错过了什么吗?
答案 0 :(得分:4)
您当前的要求主要是演示需求。由于您的login_date
已存储为datetime
,因此无需在数据库内部更改任何内容。
如果您需要提交 login_date
毫秒,请继续按原样拨打CONVERT
:
SELECT CONVERT(varchar(19), login_date, 120) AS login_date_no_millis
FROM yourTable
但是你没有必要在你的问题中向我们展示UPDATE
。
答案 1 :(得分:0)
将列更改为数据类型datetime2(0)将意味着不存储毫秒。如果你确定你不需要它们。
同样,在select中将它转换为datetime2(0)将在表示级别中执行相同操作,同时在需要时保持数据库中的毫秒数。也就是说,与cast / convert to varchar不同,它仍然是一个日期时间值而不是字符串,如果这对应用程序产生影响。