我在表中有两列,分别是字符串格式starttime
和格式
,我想endtime
在
where 子句中为 sql 查询添加条件以检查 starttime 是否大于 endtime(HH:MM tt)
Starttime = 12:15PM
endtime = 12:52PM
如下所示。
Select * from table where StartTime > EndTime
(我无法在这里比较这种情况)
谁能帮我添加写比较时间的地方。
注意:这两个值都以字符串格式存储。
我在表中有两列,分别是字符串格式starttime
和格式
,我想endtime
在
where 子句中为 sql 查询添加条件以检查 starttime 是否大于 endtime(HH:MM tt)
Starttime = 12:15PM
endtime = 12:52PM
如下所示。
Select * from table where StartTime > EndTime
(我无法在这里比较这种情况)
谁能帮我添加写比较时间的地方。
注意:这两个值都以字符串格式存储。
将字符串值转换为时间戳或日期时间格式,然后使用您的 where 条件。
--编辑
对于 SQL Server,
Select * from table where CONVERT(datetime, StartTime , 120) > CONVERT(datetime, EndTime , 120)
在进行比较之前,您需要将string
值转换为Time
:
Select * from table where CAST(StartTime As Time) > CAST(EndTime As Time)
然而,最好的解决方案是将StartTime
和EndTime
列的数据类型更改为数据类型,Time
而不是string
尝试这个。
SELECT * FROM table WHERE CONVERT (TIME, StartTime) > CONVERT (TIME, EndTime)
对于 SQL 2005:
SELECT * FROM table WHERE CONVERT(Varchar(8), CONVERT(DATETIME, StartTime), 8) > CONVERT(Varchar(8), CONVERT(DATETIME, EndTime), 8)
尝试这个
Select * from table where CAST(starttime AS TIME) > CAST(endtime AS TIME)
或者
尝试这个
Select * from table where CAST( '2013/01/01 ' + starttime AS DATETIME) > CAST( '2013/01/01 ' + Endtime AS DATETIME)