2013-05-14 422 views
0

我在嘗試刪除第二列包含小時23:59:00的所有行。SQL中冒號冒號DELETE LIKE

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' 

但它無法正常工作。我必須逃避冒號還是應該找到另一種識別行的方法?

+1

請註明您是通過添加合適的標籤(甲骨文,SQL服務器,MySQL等針對RDBMS )。可能會有利用不被普遍支持的語言或產品功能的答案。此外,通過使用特定的RDBMS標記它,您的問題可能會得到更適合回答的人的關注。 – Taryn 2013-05-14 14:11:51

+0

使用SQL Server的typename是'datetime' – frickskit 2013-05-14 14:13:38

回答

1

這應該工作:

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

Reference

+0

我得到'HOUR'不是公認的內置函數名稱。據我所知,數據庫在SQL Server中。 – frickskit 2013-05-14 14:10:28

+1

你可以試試DATEPART()函數,例如DATEPART(hh,date),DATEPART(mm,date) – 2013-05-14 14:11:38

+0

@NeilHibbert哎呀,錯誤地認爲是MySQL。定影。 – Kermit 2013-05-14 14:16:23

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

如果要使用LIKE,請將日期時間轉換爲字符串,例如。

CONVERT(VARCHAR,日期,120)LIKE '%23:59:00'