使用YYYY-MM-DD格式更新mssqlserver中的sql date字段

时间:2013-09-23 13:35:56

标签: sql sql-server database date

您好我想问你如何编写一个更新数据库中日期字段的语句; 我有一个包含一行的表,其中一个是在

YYYY-MM-DD HH:MM:SS.MMM

MMM是其中的一部分。怎么写呢?

2 个答案:

答案 0 :(得分:10)

目前的日期

update your_table
set date_field = getdate()

或当前日期和时间

update your_table
set date_field = current_timestamp

或任何日期时间

update your_table
set date_field = '2013-09-23 12:00:00.000'

答案 1 :(得分:1)

你混合了两件事。一种是在显示/转换为varchar时格式化日期时间类型,另一种是类型本身。

类型本身在内部存储日期时间,为了这个问题,它与您无关。它总是一样的。您如何看待它 - 即SQL Server Management Studio - 完全是另一回事,它依赖于直接在查询(cast(dt_column as varchar(20)))中转换为字符串,或者由您正在使用的工具间接转换为字符串。

如果您想手动设置日期时间类型,您可以编写一个字符串,其中包含直接投放或间接投放到日期时间格式的日期,即declare @dt datetime = '2012-01-01 23:00:00'是间接的,而declare @dt datetime = cast('2012-01-01 23:00:00' as datetime)是直接的。update [table_name_here] set [column_name_here] = '2013-01-01 23:12:11.123' where ... --this line only if needed; if you have only one row you may skip it 是直接的。

格式YYYY-MM-DD HH24:MI:SS.mmm相当规范,所以我很确定你可以只使用字符串中的间接转换,所以你可以写:

{{1}}

当然,用'你自己的'替换我的日期。