工作,我一直在使用LIKE
結構問題DB2
: 例如:爲什麼使用這樣帶有時間戳不DB2
select * from TEST where TIME LIKE '2012-03-04-%'
僅供參考。 - TIME
是TIMESTAMP
數據類型。
爲什麼使用LIKE
與TIMESTAMPS
不工作?
附加信息:我想從用戶的select語句提供一個單一的一天中提取數據。
工作,我一直在使用LIKE
結構問題DB2
: 例如:爲什麼使用這樣帶有時間戳不DB2
select * from TEST where TIME LIKE '2012-03-04-%'
僅供參考。 - TIME
是TIMESTAMP
數據類型。
爲什麼使用LIKE
與TIMESTAMPS
不工作?
附加信息:我想從用戶的select語句提供一個單一的一天中提取數據。
就擴大對@ mortb的答案,我想要麼使用BETWEEN
或
WHERE time >= '2012-03-04' AND time < '2012-03-05'
優勢利用BETWEEN
或比較,使用casts
和LIKE
將意味着如果在time
指數由於鑄造而無法使用。
+1:不使用連續值的「BETWEEN」。用於不隱藏搜索字段的功能。並且不使用字符串操作來處理'TIMESTAMP'。爲什麼人們認爲每件事都是一個字符串!? – MatBailie 2012-04-04 12:40:44
我猜想,當他們在第一時間的日期周圍加上''(引號)時,就開始出現混亂。在爲訪問數據庫編寫SQL時,可以使用#(#2012-04-04#)來代替常規字符串文字。這似乎更明確。 – mortb 2012-04-04 13:18:21
@mortb - 日期周圍沒有引號。在你的查詢中你有兩個字符串常量。由於'TIMESTAMP> = STRING'是不可能的,所以一個或其他數據類型需要被隱式轉換爲另一個。根據數據類型的精度順序,字符串會隱式轉換爲TIMESTAMPs。就像您自己使用CAST()函數一樣。 – MatBailie 2012-04-04 13:32:03
您可以像這樣使用其中time_to_date('2016-06-17 00:00:00','yyyy-mm-dd HH24:MI:SS')和to_date('2016-06-18 00:00:00' , 'YYYY-MM-DD HH24:MI:SS')
因爲時間戳不是字符串?如果你真的想像字符串一樣對待它們,可以將它們轉換爲字符串並指定所需的格式。但是對於這種類型的查詢,不要將時間戳轉換爲其他的東西,本地使用它 - 有很多函數和構造用於本地處理這種數據類型。不要像串線一樣對待它們。 – MatBailie 2012-04-04 12:37:07