我已将类型为[PriceStartOn]
的新列smalldatetime
添加到包含现有数据的表中。现在我想用当前日期填充列。
我使用了GETDATE()
功能,但它也添加了当前时间。
最终结果应该是这样的
2014-07-24 00:00:00
我在网上搜索过,找不到任何样本。基于其他答案,我尝试了以下代码,它显示了正确的格式,但日期错误,它返回1905-08-08 00:00:00
DECLARE @date DATETIME
SET @date = GETDATE()
UPDATE Product
SET [PriceStartOn] = ('' + DATEPART( year, @date ) + '-' + DATEPART( MONTH, @date) + '-' + DATEPART( DAY, @date) + '')
WHERE [PriceStartOn]IS NULL;
有没有人有任何想法?
谢谢
答案 0 :(得分:2)
只需将datetime
投射到date
:
UPDATE Product
SET PriceStartOn = cast(@date as date)
WHERE PriceStartOn IS NULL;
您实际上并不需要变量,您可以直接在该函数上执行此操作:
UPDATE Product
SET PriceStartOn = cast(getdate() as date)
WHERE PriceStartOn IS NULL;