gpt4 book ai didi

sql-server - 为什么 Hibernate HSQL Concat 不适用于 MSSQL?

转载 作者:行者123 更新时间:2023-12-02 07:59:39 28 4
gpt4 key购买 nike

所以,我在连接到不同引擎(MySql、Oracle、PostgreSQL 和 MS SQL)的项目中有 Hibernate 5.3.1,所以我不能使用 native 查询。

假设我在一个表中有 3 条记录,它们都具有相同的日期时间,但我需要仅按日期(而不是时间)对它们进行分组。 例如,2019-12-04

我执行这个查询:

SELECT 
CONCAT(year(tx.date_), month(tx.date_), day(tx.date_)),
iss.code,
COUNT(tx.id)
FROM
tx_ tx
JOIN
issuer_ iss
ON
tx.id_issuer = iss.id
GROUP BY
CONCAT(year(tx.date_), month(tx.date_), day(tx.date_)), iss.code

但是,当我测试它连接到 SQL SERVER 2017 时,它没有返回 20191204,而是返回 2035。在 Oracle 和 MySQL 中运行良好。

有人知道为什么会这样吗?我尝试了不同的方法,比如使用 + 而不是 CONCAT 但结果是一样的。

我也尝试过单独提取它们(不使用 concat),并且它们一直在正确返回。问题是,我需要按完整日期对它们进行分组。

只是为了记录,该字段在 DDBB 中声明为 datetime2

最佳答案

如何简单地添加它们,而不是使用 CONCAT

(year(tx.date_)*10000 + month(tx.date_)*100 + day(tx.date_)*1) AS datenum

因此,试试这个:

SELECT 
CAST((year(tx.date_)*10000 + month(tx.date_)*100 + day(tx.date_)*1) AS string) AS datenum,
iss.code
FROM tx_ tx
JOIN issuer_ iss
ON tx.id_issuer = iss.id
GROUP BY year(tx.date_), month(tx.date_), day(tx.date_), iss.code

关于sql-server - 为什么 Hibernate HSQL Concat 不适用于 MSSQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59196015/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com