Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL Server 2008中仅使用当前日期(无当前时间)更新smalldatetime字段_Sql_Sql Server - Fatal编程技术网

如何在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;