在SQL DELETE LIKE中转义冒号

时间:2013-05-14 14:07:30

标签: sql sql-server

我正在尝试删除第二列包含小时23:59:00的所有行。

int      datetime
|1 |          2       |
125 2010-12-27 00:00:00
120 2011-12-27 00:00:00
84  2012-12-26 00:00:00
108 2013-12-26 00:00:00
139 2013-12-26 23:59:00
73  2014-12-26 00:00:00
140 2014-12-26 23:59:00

我已经尝试过命令

DELETE FROM Something
WHERE Date LIKE '%23:59:00'

但它不起作用。我是否必须逃离冒号或我是否应该找到另一种识别行的方法?

3 个答案:

答案 0 :(得分:2)

一种选择:

Where DatePart( hh, [date] ) = 23 And DatePart( mi, [date] ) = 59

如果您使用的是SQL Server 2008或更高版本

Where Cast( [date] As Time ) >= '23:59:00'

DatePart function.

答案 1 :(得分:1)

这应该有效:

...WHERE DATEPART(hh, [date]) = 23 AND DATEPART(mi, [date]) = 59

Reference

答案 2 :(得分:1)

如果您想使用LIKE,请将日期时间转换为字符串,例如

  

CONVERT(varchar,date,120)喜欢'%23:59:00'