SAP HANA SQL系列三:日期时间函数

日期时间函数

    • ADD_DAYS
    • ADD_MONTHS
    • ADD_SECONDS
    • ADD_YEARS
    • CURRENT_DATE
    • CURRENT_TIME
    • CURRENT_TIMESTAMP
    • CURRECT_UTCDATE
    • CURRENT_UTCTIME
    • CURRENT_UTCTIMESTAMP
    • DAYNAME
    • DAYOFMONTH
    • DAYOFYEAR
    • DAYS_BETWEEN
    • EXTRACT
    • HOUR
    • ISOWEEK
    • LAST_DAY
    • LOCALTOUTC
    • MINUTE
    • MONTH
    • MONTHNAME
    • NEXT_DAY
    • NOW
    • QUARTER
    • SECOND
    • SECONDS_BETWEEN
    • UTCTOLOCAL
    • WEEK
    • WEEKDAY
    • YEAR

 

ADD_DAYS

  • ADD_DAYS (d, n)
  • 计算日期 d 后 n 天的值。
SELECT ADD_DAYS (TO_DATE ('2009-12-05', 'YYYY-MM-DD'), 30) "add days" FROM DUMMY;
add days
2010-01-04

ADD_MONTHS

  • ADD_MONTHS (d, n)
  • 计算日期 d 后 n 月的值。
SELECT ADD_MONTHS (TO_DATE ('2009-12-05', 'YYYY-MM-DD'), 1) "add months" FROM DUMMY;
add months
2010-01-05

ADD_SECONDS

  • ADD_SECONDS (t, n)
  • 计算时间 t 后 n 秒的值。
SELECT ADD_SECONDS (TO_TIMESTAMP ('2012-01-01 23:30:45'), 60*30) "add seconds" FROM DUMMY;
add seconds
2012-01-02 00:00:45.0

ADD_YEARS

  • ADD_YEARS (d, n)
  • 计算日期 d 后 n 年的值。
SELECT ADD_YEARS (TO_DATE ('2009-12-05', 'YYYY-MM-DD'), 1) "add years" FROM DUMMY;
add years
2010-12-05

CURRENT_DATE

  • CURRENT_DATE
  • 返回当前本地系统日期。
SELECT CURRENT_DATE "current date" FROM DUMMY;
current date
2010-01-11

CURRENT_TIME

  • CURRENT_TIME
  • 返回当前本地系统时间。
SELECT CURRENT_TIME "current time" FROM DUMMY;
current time
17:37:37

CURRENT_TIMESTAMP

  • CURRENT_TIMESTAMP
  • 返回当前本地系统的时间戳信息。
SELECT CURRENT_TIMESTAMP "current timestamp" FROM DUMMY;
current timestamp
2010-01-11 17:38:48.802

CURRECT_UTCDATE

  • CURRENT_UTCDATE
  • 返回当前 UTC 日期。UTC 代表协调世界时,也被称为格林尼治标准时间(GMT)。
SELECT CURRENT_UTCDATE "Coordinated Universal Date" FROM DUMMY;
Coordinated Universal Time
2010-01-11

CURRENT_UTCTIME

  • CURRENT_UTCTIME
  • 返回当前 UTC 时间。
SELECT CURRENT_UTCTIME "Coordinated Universal Time" FROM DUMMY;
Coordinated Universal Time
08:41:19

CURRENT_UTCTIMESTAMP

  • CURRENT_UTCTIMESTAMP
  • 返回当前 UTC 时间戳。
SELECT CURRENT_UTCTIMESTAMP "Coordinated Universal Timestamp" FROM DUMMY;
Coordinated Universal Timestamp
2010-01-11 08:41:42.484

DAYNAME

  • DAYNAME (d)
  • 返回一周中日期 d 的英文名。
SELECT DAYNAME ('2011-05-30') "dayname" FROM DUMMY;
dayname
MONDAY

DAYOFMONTH

  • DAYOFMONTH (d)
  • 返回一个月中日期 d 的整数数字。
SELECT DAYOFMONTH ('2011-05-30') "dayofmonth" FROM DUMMY;
dayofmonth
30

DAYOFYEAR

  • DAYOFYEAR (d)
  • 返回一年中代表日期 d 的整数数字。
SELECT DAYOFYEAR ('2011-05-30') "dayofyear" FROM DUMMY;
dayofyear
150

DAYS_BETWEEN

  • DAYS_BETWEEN (d1, d2)
  • 计算 d1 和 d2 之间的日期数。
SELECT DAYS_BETWEEN (TO_DATE ('2009-12-05', 'YYYY-MM-DD'), TO_DATE('2010-01-05', 'YYYY-MMDD')) "days between" FROM DUMMY;
days between
31

EXTRACT

  • EXTRACT ({YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} FROM d)
  • 返回日期 d 中指定的时间日期字段的值。
SELECT EXTRACT (YEAR FROM TO_DATE ('2010-01-04', 'YYYY-MM-DD')) "extract" FROM DUMMY;
extract
2010

HOUR

  • HOUR (t)
  • 返回时间 t 中表示小时的整数。
SELECT HOUR ('12:34:56') "hour" FROM DUMMY;
hour
12

ISOWEEK

  • ISOWEEK (d)
  • 返回日期 d 的 ISO 年份和星期数。星期数前缀为字母 W。另请阅 WEEK。
SELECT ISOWEEK (TO_DATE('2011-05-30', 'YYYY-MM-DD')) "isoweek" FROM DUMMY;
Isoweek
2011-W22

LAST_DAY

  • LAST_DAY (d)
  • 返回包含日期 d 的月的最后一天日期。
SELECT LAST_DAY (TO_DATE('2010-01-04', 'YYYY-MM-DD')) "last day" FROM DUMMY;
last day
2010-01-31

LOCALTOUTC

  • LOCALTOUTC (t, timezone)
  • 将 timezone 下的本地时间 t 转换为 UTC 时间。
SELECT LOCALTOUTC (TO_TIMESTAMP('2012-01-01 01:00:00', 'YYYY-MM-DD HH24:MI:SS'), '
EST') "localtoutc" FROM DUMMY;
localtoutc
2012-01-01 06:00:00.0

MINUTE

  • MINUTE(t)
  • 返回时间 t 中表示分钟的数字。
SELECT MINUTE ('12:34:56') "minute" FROM DUMMY;
minute
34

MONTH

  • MONTH(d)
  • 返回日期 d 所在月份的数字。
SELECT MONTH ('2011-05-30') "month" FROM DUMMY;
month
5

MONTHNAME

  • MONTHNAME(d)
  • 返回日期 d 所在月份的英文名。
SELECT MONTHNAME ('2011-05-30') "monthname" FROM DUMMY;
monthname
MAY

NEXT_DAY

  • NEXT_DAY (d)
  • 返回日期 d 的第二天。
SELECT NEXT_DAY (TO_DATE ('2009-12-31', 'YYYY-MM-DD')) "next day" FROM DUMMY;
next day
2010-01-01

NOW

  • NOW ()
  • 返回当前时间戳。
SELECT NOW () "now" FROM DUMMY;
now
2010-01-01 16:34:19.894

QUARTER

  • QUARTER (d, [, start_month ])
  • 返回日期 d 的年份,季度。第一季度由 start_month 定义的月份开始,如果没有定义start_month,第一季度假设为从一月开始。
SELECT QUARTER (TO_DATE('2012-01-01', 'YYYY-MM-DD'), 2) "quarter" FROM DUMMY;
quarter
2011-Q4

SECOND

  • SECOND (t)
  • 返回时间 t 表示的秒数。
SELECT SECOND ('12:34:56') "second" FROM DUMMY;
second
56

SECONDS_BETWEEN

  • SECONDS_BETWEEN (d1, d2)
  • 计算日期参数 d1 和 d2 之间的秒数,语义上等同于 d2-d1。
SELECT SECONDS_BETWEEN ('2009-12-05', '2010-01-05') "seconds between" FROM DUMMY;
seconds between
2678400

UTCTOLOCAL

  • UTCTOLOCAL (t, timezone)
  • 将 UTC 时间值转换为时区 timezone 下的本地时间。
SELECT UTCTOLOCAL (TO_TIMESTAMP('2012-01-01 01:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'EST')
"utctolocal" FROM DUMMY;
utctolocal
2011-12-31 20:00:00.0

WEEK

  • WEEK (d)
  • 返回日期 d 所在星期的整数数字。另请参阅 ISOWEEK。
SELECT WEEK (TO_DATE('2011-05-30', 'YYYY-MM-DD')) "week" FROM DUMMY;
week
23

WEEKDAY

  • WEEKDAY (d)
  • 返回代表日期 d 所在星期的日期数字。返回值范围为 0 至 6,表示 Monday(0)至 Sunday(6)。
SELECT WEEKDAY (TO_DATE ('2010-12-31', 'YYYY-MM-DD')) "week day" FROM DUMMY;
week day
4

YEAR

  • YEAR (d)
  • 返回日期 d 所在的年份数。
SELECT YEAR (TO_DATE ('2011-05-30', 'YYYY-MM-DD')) "year" FROM DUMMY;
year
2011
posted @ 2022-10-17 11:09  一亩二分  阅读(1612)  评论(0编辑  收藏  举报