第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

H2 - 在 Java 中構建并執(zhí)行查詢以進行日期比較

H2 - 在 Java 中構建并執(zhí)行查詢以進行日期比較

慕運維8079593 2023-09-06 15:56:34
我想創(chuàng)建一個表,其中包含另一個表的所有記錄,其出生日期是<某個日期我嘗試在我的 Java 應用程序中構建并執(zhí)行此查詢。比較日期 (2016-12-31) 是一個字符串,出生日期在 H2 數據庫中存儲為日期時間。CREATE TABLE table1 ASSELECT *FROM tempWHERE FORMATDATETIME(BirthDate,'yyyy-MM-dd') < 2016-12-31GROUP BY Cod, IdORDER BY Cod, BirthDate當執(zhí)行查詢時,我收到此錯誤:org.h2.jdbc.JdbcSQLException: Data conversion error converting "2016-12-31"; SQL statement:
查看完整描述

1 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

如果BirthDate是日期或日期時間值,則不應將其轉換為字符串值以進行此類比較。但是,對于某些比較操作,您可能需要將日期時間值轉換為日期值,在這種情況下請使用CAST(datetime AS DATE). 在您的查詢中,實際上并不需要它。


日期文字不能寫成2016-12-31,這樣的表達式表示帶有兩次減法的數值表達式。日期文字應寫為DATE '2016-12-31'.


CREATE TABLE table1 AS

SELECT *

FROM temp

WHERE BirthDate < DATE '2016-12-31'

GROUP BY Cod, Id

ORDER BY Cod, BirthDate

此查詢中的子句GROUP BY也無效。H2 在該領域不是很嚴格,如果分組列中沒有具有相同值的重復行,則可以接受此類查詢,但您不應該依賴這種行為。不能選擇未分組的列,它們只能被聚合。如果Id是主鍵,則應刪除此子句,因為該子句無用。


CREATE TABLE table1 AS

SELECT *

FROM temp

WHERE BirthDate < DATE '2016-12-31'

ORDER BY Cod, BirthDate


查看完整回答
反對 回復 2023-09-06
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號