Oracle сравнивает временную метку с датой У меня есть поле timestamp, и я просто хочу сравнить его часть в моем запросе в Oracle Как это сделать, SELECT * FROM Table1 WHERE date(field1) = '2012-01-01' Ответ 1 Вы можете обрезать часть даты: 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') Ответ 2 Вы можете усечь дату SELECT * FROM Table1 WHERE trunc(field1) = to_Date('2012-01-01','YYY-MM-DD') Посмотрите SQL Fiddle для получения дополнительных примеров. Ответ 3 Формат 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')
Ответ 1 Вы можете обрезать часть даты: 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')
Ответ 2 Вы можете усечь дату SELECT * FROM Table1 WHERE trunc(field1) = to_Date('2012-01-01','YYY-MM-DD') Посмотрите SQL Fiddle для получения дополнительных примеров.
Ответ 3 Формат 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')