将间隔 1 天替换为 SQL 服务器语法
Substitute interval 1 day to SQL server syntax
我有这个日期时间,在 Hana 工作:
CAST((B."ZFBDT" + B."ZBD1T" * INTERVAL '1 day') AS DATE) + CAST('23:59:59' AS TIME)
B."ZFBDT" = '2020-10-30'
B."ZBD1T" = 67
RES = 2021-01-05 23:59:59
问题是我需要将它转换成 SQL 服务器,而我现在不支持 INTERVAL。实际上我什至没有正确理解语法:为什么它们在 INTERVAL 1 天中乘以?
我不懂加减法,为什么要乘法呢?
不管怎样,我怎样才能在 SQL 服务器上完成这项工作?
谢谢
在 SQL 服务器上,您可以尝试以下操作:
DATEADD(SECOND, -1, DATEADD(DAY, B.ZBD1T + 1 , CAST(B.ZFBDT AS datetime)))
您可以将您的问题表述为要将 B.ZBD1T
天添加到输入日期 B.ZFBDT
,然后将生成的时间戳记置于 23:59:59,即午夜前一秒。我们可以通过添加 B.ZBD1T
加上一天,然后减去一秒来获得 23:59:59 时间分量来实现。
我有这个日期时间,在 Hana 工作:
CAST((B."ZFBDT" + B."ZBD1T" * INTERVAL '1 day') AS DATE) + CAST('23:59:59' AS TIME)
B."ZFBDT" = '2020-10-30'
B."ZBD1T" = 67
RES = 2021-01-05 23:59:59
问题是我需要将它转换成 SQL 服务器,而我现在不支持 INTERVAL。实际上我什至没有正确理解语法:为什么它们在 INTERVAL 1 天中乘以?
我不懂加减法,为什么要乘法呢? 不管怎样,我怎样才能在 SQL 服务器上完成这项工作?
谢谢
在 SQL 服务器上,您可以尝试以下操作:
DATEADD(SECOND, -1, DATEADD(DAY, B.ZBD1T + 1 , CAST(B.ZFBDT AS datetime)))
您可以将您的问题表述为要将 B.ZBD1T
天添加到输入日期 B.ZFBDT
,然后将生成的时间戳记置于 23:59:59,即午夜前一秒。我们可以通过添加 B.ZBD1T
加上一天,然后减去一秒来获得 23:59:59 时间分量来实现。