我刚刚开始学习数据库,所以这是一个相当基本的问题,但我无法弄清楚如何实现这一目标。
我在数据库中有一个表,其中有一个名为Date的列,我存储一个日期(只是格式为dd / mm / yy的日期),还有另一个名为IntegerColumn的列,其中我最初存储整数值0.
问题是
当Date中的日期小于当前日期时,如何在IntegerColumn中将整数值0递增1。
请注意,存储日期的列的数据类型是nvarchar(50),我将通过我的asp.net应用程序中的代码检查日期格式,即dd / mm / yy。另外,我每次使用SQL作业调度来查询时,SQL Server会发现日期少于当前日期。
我做了这么多......
DECLARE @IncrementValue int
SET @IncrementValue = 1
UPDATE tableA SET IntegerColumn = IntegerColumn + @IncrementValue
WHERE Date < GETDATE()
答案 0 :(得分:4)
为什么要将日期值存储到nvarchar(50)
字段中?这就是问题所在。
在这种情况下,您将文本字段should convert添加到DATETIME类型:
...
WHERE CONVERT(datetime,[Date],3) < GETDATE();