1

当我使用INSERT INTO table varchar_field Values (GETDATE())时,数据库将值存储为:

    Mar 19 2013 12:55PM 

但我想存储为:

    2013-03-19 12:55:24.577 

如何实现?

4

3 回答 3

9

请停止将您的日期值存储为varchar,使用正确的数据类型。

您最好的解决方案是将您的列更改为正确的数据类型。

但是,如果您需要转换getdate(),您可以使用:

INSERT INTO table varchar_field
select convert(varchar(50), GETDATE(), 121)

这是SQL Server 的所有数据转换的完整列表

于 2013-03-19T17:06:52.297 回答
5

来自MSDN

select CONVERT(varchar(50),getdate(),121)

INSERT INTO table varchar_field Values (CONVERT(varchar(50),getdate(),121))

正如 Lamak 指出的那样,我错误地忽略了指定 varchar 的长度

于 2013-03-19T17:06:07.193 回答
0

第1步

alter yourtable drop column varchar_field

第2步

alter yourtable add column datetimefield datetime default getdate()

第 3 步

select convert(varchar(50), datetimefield, 121)
from yourtable

这种方法允许您在需要时更改格式,或进行日期数学运算。`

于 2013-03-19T17:13:52.907 回答