将纪元时间转换为 SQL Server 日期时间并获取当前日期的数据 - 3

Bin*_*jee 2 t-sql sql-server

这个问题在这个论坛上被问过好几次了。但我没有找到解决这个问题的办法

select dateadd(ms, CAST (1430607256000 AS BIGINT), '1970-01-01 00:00:00.0');
Run Code Online (Sandbox Code Playgroud)

我正在尝试以人类可读的格式获取它。但我收到以下错误:

[22003][FreeTDS][SQL Server]将表达式转换为数据类型 int 时出现算术溢出错误。

我实际上需要介于current_date-3 00:00:00 and current_date-3 23:59:59.

我是一个Oracle人,新来的SQL Server。请帮忙。

我的Oracle查询是:

SELECT TRIM(datecol)  
FROM transactions 
WHERE datecol BETWEEN (((TO_DATE(TO_CHAR(CURRENT_DATE+INTERVAL '-3'DAY, 'DD MON YYYY')||' '||'00:00:00','DD MON YYYY HH24:MI:SS') - TO_DATE('1970-01-01','YYYY-MM-DD')) * 86400000) + 14400000) AND (((TO_DATE(TO_CHAR(CURRENT_DATE+INTERVAL '-3'DAY, 'DD MON YYYY')||' '||'23:59:59','DD MON YYYY HH24:MI:SS') - TO_DATE('1970-01-01','YYYY-MM-DD')) * 86400000) + 14400000);
Run Code Online (Sandbox Code Playgroud)

Din*_*hDB 5

尝试这个:

首先将其更改MilliSecondsMinutes(1430607256000/60000) 并将其添加到Date值中。

SELECT DATEADD(MINUTE,1430607256000/60000,'1970-01-01 00:00:00.0');
Run Code Online (Sandbox Code Playgroud)

输出:

2015-05-02 22:54:00.000
Run Code Online (Sandbox Code Playgroud)