sql >> Databasteknik >  >> RDS >> Oracle

Oracle jämför två olika datum

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):



  1. SQLSTATE[HY000] [1698] Åtkomst nekad för användaren 'root'@'localhost'

  2. Utför almbic-uppgradering i flera scheman

  3. Bygg infogningsfråga från array MySQL och PHP

  4. MySQLdb.cursor.execute kan inte köra flera frågor