Din inmatningssträng i to_date() funktionen matchar inte ditt mönster. Värdet innehåller - som avgränsare, men i mönstret använder du / :
Om du justerar ditt inmatningsformat och mönstret bör detta fungera:
datetrx <= to_date('2014-07-16 00:00:00','yyyy-mm-dd hh24:mi:ss')
Jag föredrar personligen ANSI-tidsstämpeln framför to_date() fungerar eftersom de är bärbara och det är mindre att skriva:
datetrx <= timestamp '2014-07-16 00:00:00'
Notera att formatet som strängen som tillhandahålls här är alltid ISO-formatet.
En sidoanteckning:
Alla "format" du ser när du tittar på värdena i kolumnen daterx tillämpas av SQL-klienten du använder för att visa dessa data (SQL*Plus, SQL Developer, ...).
Själva värdet lagras utan format på servern. Formatering av en DATE värdet är alltid gjort av SQL-klienten (eller din applikation):