Pra*_*arg 19 sql oracle postgresql datetime
我正在编写一个SQL查询,它涉及查找时间戳是否落在特定的天数范围内.
我在PostgreSQL中写过,但它在Oracle和SQL Server中不起作用:
AND creation_date < (CURRENT_TIMESTAMP - interval '5 days')
AND creation_date >= (CURRENT_TIMESTAMP - interval '15 days')
Run Code Online (Sandbox Code Playgroud)
是否有通用的方法来比较不同数据库的时间戳?
Sco*_*ley 17
我不是SQL Server专家,但我知道这适用于Oracle和Postgres,我怀疑它可能适用于MSSQL,但无法测试它的ATM.
AND creation_date < (CURRENT_TIMESTAMP - interval '5' day)
AND creation_date >= (CURRENT_TIMESTAMP - interval '15' day)
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用日期类型而不是时间戳,您可以这样做,但我很确定它不适用于MSSQL.而Oracle和Pg之间的DATE类型则截然不同.
AND creation_date < CURRENT_DATE - 5
AND creation_date >= CURRENT_DATE - 15
Run Code Online (Sandbox Code Playgroud)
正如OMG Ponies的评论中所指出的,您只能在日期类型中添加内注而不是时间戳.(Oracle默默地将时间戳转换为日期)
select to_timestamp('2010-01-01 10:10:85.123', 'YYYY-MM-dd HH:MI:SS.MS') <
to_timestamp('2012-01-01 10:10:85.123', 'YYYY-MM-dd HH:MI:SS.MS');
Run Code Online (Sandbox Code Playgroud)
返回true,因为它2012
位于.之后2010
归档时间: |
|
查看次数: |
62529 次 |
最近记录: |