简体   繁体   中英

Determine number of seconds in one year

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

For non leap years:

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

And in general:

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
SELECT
    (ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), 12) - TRUNC(SYSDATE, 'YYYY')) * 86400 SECONDS
FROM
    DUAL;
SELECT DAYOFYEAR('2015-12-31') * 24 * 60 * 60 FROM DUAL

DAYOFYEAR将在正常年份的除夕返回365,在leap年返回366。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM