明天约会

use*_*656 22 sql sql-server

我试图让som语句中的明天日期为日期比较,但它无法正常工作.

以下是我的代码:

select * 
from tblcalendarentries
where convert(varchar,tblcalendarentries.[Start Time],101) 
      = convert(varchar, GETDATE() +1, 101)
Run Code Online (Sandbox Code Playgroud)

Tan*_*ner 37

要获得明天的日期,您可以使用以下代码,该代码将在当前系统日期添加1天:

SELECT DATEADD(day, 1, GETDATE())
Run Code Online (Sandbox Code Playgroud)

GETDATE()

返回当前数据库系统时间戳作为没有数据库时区偏移的日期时间值.此值派生自运行SQL Server实例的计算机的操作系统.

DATEADD(datepart,number,date)

返回指定的日期,并将指定的数字间隔(有符号整数)添加到该日期的指定日期部分.

所以将这个添加到WHERE子句中的代码中:

WHERE CONVERT(VARCHAR, tblcalendarentries.[Start Time], 101) = 
      CONVERT(VARCHAR, DATEADD(DAY, 1, GETDATE()), 101);
Run Code Online (Sandbox Code Playgroud)

首先,GETDATE()将以下列格式为您提供今天的日期:

2013-04-16 10:10:02.047
Run Code Online (Sandbox Code Playgroud)

然后使用DATEADD(),允许您从指定日期添加(或在需要时减去)日期或时间间隔.所以间隔可以是:年,月,日,小时,分钟等.

使用时区?

如果您正在使用跨时区的系统,您可能还需要考虑使用GETUTCDATE():

GETUTCDATE()

返回当前数据库系统时间戳作为日期时间值.不包括数据库时区偏移量.该值表示当前UTC时间(协调世界时).此值派生自运行SQL Server实例的计算机的操作系统.


小智 5

试试以下内容:

SELECT GETDATE() + 1
Run Code Online (Sandbox Code Playgroud)

这会在当前日期增加一天