如何在SQL Server 2008中仅使用当前日期(无当前时间)更新smalldatetime字段
我在一个包含现有数据的表中添加了一个新的如何在SQL Server 2008中仅使用当前日期(无当前时间)更新smalldatetime字段,sql,sql-server,Sql,Sql Server,我在一个包含现有数据的表中添加了一个新的[PriceStartOn],类型为smalldatetime。现在我想用当前日期填充该列 我使用了GETDATE()函数,但它也添加了当前时间 最终的结果应该是这样的 2014-07-24 00:00:00 我在网上搜索了一下,没有找到这方面的任何样本。基于其他答案,我尝试了以下代码,它显示了正确的格式,但日期错误,返回1905-08-08 00:00:00 DECLARE @date DATETIME SET @date = GETDATE()
[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;
有人有什么想法吗
谢谢只需将
日期时间
转换为日期
:
UPDATE Product
SET PriceStartOn = cast(@date as date)
WHERE PriceStartOn IS NULL;
实际上,您不需要变量,可以直接在函数上执行此操作:
UPDATE Product
SET PriceStartOn = cast(getdate() as date)
WHERE PriceStartOn IS NULL;