比較時間戳我有一個時間戳字段,我只是想給它的日期部分在Oracle中比較我的查詢甲骨文日期
如何做到這一點,
SELECT *
FROM Table1
WHERE date(field1) = '2012-01-01'
比較時間戳我有一個時間戳字段,我只是想給它的日期部分在Oracle中比較我的查詢甲骨文日期
如何做到這一點,
SELECT *
FROM Table1
WHERE date(field1) = '2012-01-01'
可以truncate的日期部分:
select * from table1 where trunc(field1) = to_date('2012-01-01', 'YYYY-MM-DD')
這種方法的問題在於,在field1
任何索引將不會被使用,因爲函數調用。
或者(更友好指數)
select * from table1
where field1 >= to_timestamp('2012-01-01', 'YYYY-MM-DD')
and field1 < to_timestamp('2012-01-02', 'YYYY-MM-DD')
您可以截斷日期
SELECT *
FROM Table1
WHERE trunc(field1) = to_Date('2012-01-01','YYY-MM-DD')
看那SQL Fiddle更多的例子。
to_date
格式爲我工作。請考慮日期格式: MON-
,MM
,.
,-
。
t.start_date >= to_date('14.11.2016 04:01:39', 'DD.MM.YYYY HH24:MI:SS')
t.start_date <=to_date('14.11.2016 04:10:07', 'DD.MM.YYYY HH24:MI:SS')
您應該**不**依賴於隱式數據轉換。 ''2012-01-01''不是日期,而是字符。您應始終使用'to_date()'或ANSI DATE文字來確保您的SQL在NLS設置不同時不會中斷。 –