如何解决SQL Server中的日期比较问题?

Ram*_*ngh 1 sql-server comparison date sql-server-2008

我使用以下方式比较两个日期:

if CONVERT(varchar(20), @ScheduleDate, 101) >= CONVERT(varchar(20), @CurrentDateTime, 101)
Run Code Online (Sandbox Code Playgroud)

这是本年度工作正常,但是当谈到在每年像一个日期是12/31/20121/1/2013那么它不工作.

请帮帮我,我该如何解决这个问题.

Rom*_*kar 5

为什么要比较字符串?你可以比较日期

if @ScheduleDate >= @CurrentDateTime
Run Code Online (Sandbox Code Playgroud)

但如果你的日期包含时间,我通常会这样做

if convert(nvarchar(8), @ScheduleDate, 112) >= convert(nvarchar(8), @CurrentDateTime, 112)
Run Code Online (Sandbox Code Playgroud)

112日期时间格式为YYYYMMDD,因此它适用于比较日期