天天看點

Oracle與SQL Server、MySQL日期文法的差别

用PLSQL連接配接Oracle資料庫輸入以下查詢語句

select * from t_user t where t.create_time < '2014-12-17 17:10:00'
           

既然報錯。。。。。。

後來發現在Oracle中書寫sql語句的日期文法并不與SQL Server和MySQL的文法一樣

Oracle并不能識别‘2014-12-17 17:10:00’為日期類型,但是其餘兩個資料庫都能夠識别其為日期類型。

那怎麼辦呢。。。。。。

這裡就需要用到Oracle的to_date()函數了。

作用是轉換參數為日期類型

如下:

select * from t_user t where t.create_time < to_date('2014-12-17 17:10:00','yyyy-MM-dd HH24:mi:ss')
           

在使用Oracle的to_date函數來做日期轉換時,很多Java程式員也許會直接的采用“yyyy-MM-dd HH:mm:ss”的格式作為格式進行轉換,但是在Oracle中會引起錯誤:“ORA 01810 格式代碼出現兩次

原因是SQL中不區分大小寫,MM和mm被認為是相同的格式代碼,是以Oracle的SQL采用了mi代替分鐘。 

HH24意思是時間為24小時制。