确定一年中的秒数

时间:2015-10-06 05:40:05

标签: sql oracle

什么SQL表达式能够计算任何特定年份的秒数?

3 个答案:

答案 0 :(得分:2)

对于非闰年:

SELECT 365 * 24 * 60 * 60 AS secInYear
FROM dual

总的来说:

<强> SqlFiddleDemo

SELECT
  24 * 60 * 60 * (
  CASE 
    WHEN MOD(EXTRACT(YEAR FROM sysdate), 400) = 0 
         OR ( MOD(EXTRACT(YEAR FROM sysdate), 4) = 0 AND MOD(EXTRACT(YEAR FROM sysdate), 100) != 0) THEN 366
    ELSE 365
  END ) AS secInYear
FROM dual

答案 1 :(得分:1)

SELECT
    (ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12) - TRUNC(SYSDATE, 'YYYY')) * 86400 SECONDS
FROM
    DUAL;

答案 2 :(得分:0)

SELECT DAYOFYEAR('2015-12-31') * 24 * 60 * 60 FROM DUAL

DAYOFYEAR常规年将为新年前夜返回365,闰年将为366。