小编use*_*907的帖子

Oracle PLSQL将日期时间截断为特定小时

我有一个Oracle PLSQL代码生成一个日期时间戳列表,我想将它们截断到早上7点和晚上7点的特定时间,而不是当天的开始时间.

例如:

  • 01/03/2013 0700成为01/03/2013 0700
  • 01/03/2013 1235成为01/03/2013 0700
  • 01/03/2013 1932年成为01/03/2013 1900
  • 02/03/2013 0612成为01/03/2013 1900

我的代码目前是:

 SELECT  TRUNC(TRUNC(SYSDATE,'hh') + 1/24 - (ROWNUM) / 24, 'dd')  as shift_date
 FROM widsys.times
 ORDER BY SYSDATE
Run Code Online (Sandbox Code Playgroud)

谢谢

oracle datetime plsql truncate hour

7
推荐指数
1
解决办法
1万
查看次数

Oracle PLSQL将日期时间截断为15分钟

我想将我的数据汇总到15分钟段(一小时的季度).为此,我编写了一些生成15分钟日期时间块的代码.

SELECT 
   TRUNC(SYSDATE,'hh') + 0.25/24 - (ROWNUM) *0.25/ 24
   AS time_start,
   ROWNUM,
   TRUNC(SYSDATE,'hh') + 0.25/24 - (ROWNUM - 1) *0.25/ 24
   AS time_end
FROM widsys.consist 
WHERE ROWNUM <3000
ORDER BY sysdate
Run Code Online (Sandbox Code Playgroud)

我的代码的问题是因为它使用了一个小时截断,它只会从最近一小时的开始生成时间戳.例如,11:49AM现在生成的第一个戳是11:00AM.

我需要它从最后15分钟的块开始生成标记(11:45AM从上面的例子).谁能帮帮我吗?

sql oracle datetime plsql truncate

6
推荐指数
1
解决办法
8016
查看次数

标签 统计

datetime ×2

oracle ×2

plsql ×2

truncate ×2

hour ×1

sql ×1