为什么sql不比较时间?

Cov*_*ert 2 sql t-sql sql-server sql-server-2014

我比较这两次,如果它小于或大于彼此,但它没有.为什么?

 if(@OpeningTime < @ExpiryTime)
      Begin
            Raiserror('Opening time cannot be smaller than expiry time', 16,10);
            return
      End
Run Code Online (Sandbox Code Playgroud)

两者都是varchar(10)

时间过去就像早上10点和上午11点

Mar*_*rkD 9

你实际在做的是比较字符串,你需要先转换VARCHARTIME第一个然后比较它们.

IF ( CONVERT(TIME, @OpeningTime) < CONVERT(TIME, @ExpiryTime) )
Run Code Online (Sandbox Code Playgroud)

  • @ThorstenKettner刚刚在我的本地机器上运行(运行sql server 2012),我在10:00:00.0000000转换'10:00AM'和22:00:00.0000000转换'10:00PM'但是我个人是24次粉丝无论如何 - 错误/误解的空间较小 (3认同)