mybatis 字符串轉時間類型


有時候前端傳過來的時間是字符串類型的,如果直接使用,會報錯。
如在XML里這樣使用:select * from table where create_time >= #{startTime},其中startTime為前端傳過來的時間。
在運行時會報錯:

              ERROR: operator does not exist: timestamp without time zone > character varying

解決辦法:使用時間轉換函數獎字符串轉為時間類型:

to_date(#{startTime},'YYYY-MM-DD HH24:MI:SS')
上面是sql就可以寫為:
select * from table where create_time >= to_date(#{startTime},'YYYY-MM-DD HH24:MI:SS') 這樣就不會報錯了

需要注意的是:上面的時間格式為:'YYYY-MM-DD HH24:MI:SS' ,HH24代表使用24小時,如果不加24,就代表使用12小時制,這個時候如果傳過來startTime 的值為‘2019-06-15 00:00:00’,
這個時候也會報錯:org.postgresql.util.PSQLException: ERROR: hour "0" is invalid for the 12-hour clock

另外不像java的時間格式可以寫為 ‘YYYY-MM-dd HH:mm:SS’,mybatis的xml如果寫為這樣也會報錯:
  Cause: org.postgresql.util.PSQLException: ERROR: conflicting values for "MM" field in formatting string

所以記得最好寫成: 'YYYY-MM-DD HH24:MI:SS'

end


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM