嗨我想问你如何写一个语句来更新数据库中的日期字段;我有一个包含一行的表,其中一个值在
YYYY-MM-DD HH:MM:SS.MMM
MMM 是秒的一部分。怎么写?
嗨我想问你如何写一个语句来更新数据库中的日期字段;我有一个包含一行的表,其中一个值在
YYYY-MM-DD HH:MM:SS.MMM
MMM 是秒的一部分。怎么写?
对于当前日期
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'
你混合了两件事。一种是在显示/转换为 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)
为直接转换。
YYYY-MM-DD HH24:MI:SS.mmm 格式相当规范,所以我很确定您可以使用字符串的间接转换,这样您就可以编写:
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
当然用你自己的替换我在''中的日期。