所有其他时间值的SQL日期时间更新时间为00:00:00

时间:2013-10-24 09:50:57

标签: sql sql-server-2008 tsql datetime milliseconds

有没有办法从

更新表中的所有列
2010-12-31 23:59:59.000

2010-12-31 00:00:00.000

这样的东西?

UPDATE t1
SET [Posting Date] = [Posting Date] with ms = 00:00:00.000
WHERE ms = other than 00:00:00.000
GO

6 个答案:

答案 0 :(得分:15)

UPDATE t1
SET [Posting Date] = cast([Posting Date] as date)
WHERE cast([Posting Date] as time) > '00:00'

答案 1 :(得分:4)

UPDATE t1
SET [Posting Date] = CAST([Posting Date] as DATE)

答案 2 :(得分:0)

在sql-server

UPDATE [dbo].[1] SET  [datetime]= CAST([datetime] AS DATE) 

select * from [dbo].[1]

答案 3 :(得分:0)

这可能会对您有所帮助:

UPDATE tableName SET ColumnName = CAST( CAST( NOW( ) AS DATE ) AS DATETIME );

答案 4 :(得分:0)

尝试:

MODIFIEDDATETIME-(cast(MODIFIEDDATETIME as time))

答案 5 :(得分:-1)

这对我有用:

update t1 set [Posting Date]  = CONVERT(varchar,[Posting Date] , 112)

但我认为它在很大程度上取决于你的数据库的语言环境是如何配置的,你可能需要使用另一种风格(而不是112,或许是101或102 ......),请参阅this link以查看可能的样式。转换并选择最适合你的那个。

如果您需要执行此操作一次,您可以将列类型更改为日期,保存然后再更改为日期时间,但如果表格很大,则可能非常耗时