我在表格中有两列,字符串格式starttime
和endtime
格式的(HH:MM tt)
Starttime = 12:15PM
和endtime = 12:52PM
我想在sql查询的where子句中添加条件来检查startime是否大于endtime
如下所示。
Select * from table where StartTime > EndTime
(我无法在此比较这种情况)
任何人都可以帮我添加写比较时间。
注意:两个值都以字符串格式存储。
答案 0 :(得分:1)
将字符串值转换为时间戳或日期时间格式,然后使用where条件。
- 编辑的
对于SQL Server,
Select * from table where CONVERT(datetime, StartTime , 120) > CONVERT(datetime, EndTime , 120)
答案 1 :(得分:1)
在进行比较之前,您需要将string
值转换为Time
:
Select * from table where CAST(StartTime As Time) > CAST(EndTime As Time)
然而,最佳解决方案是将StartTime
和EndTime
列的数据类型更改为数据类型Time
,而不是string
答案 2 :(得分:1)
试试这个。
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)
答案 3 :(得分:0)
试试这个
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)
答案 4 :(得分:0)