DATE_PART¶
说明¶
获取给定日期的指定子域值。
参数¶
field
field域指出了需要获取哪个子域的信息,比如可以是month,day,hour等等。
time_expression
此参数的类型可以是date、time、time with time zone、timestamp、timestamp with time zone类型的时间表达式。
返回值¶
以double类型返回指定所取的域值。
注解
filed域所支持的域名取决于输入的expression的数据类型,具体对应关系如下:
当expression是date类型时,DATE_PART支持的域名有:
MILLENNIUM 千年域,第三个千年是从2001年1月1日始至3000年12月31日止。
CENTURY 世纪域,21世纪是从2001年1月1日始至2100年12月31日止。
DECADE 十年域,第199个十年是从1990年1月1日始至1999年12月31日止。
YEAR 年份域,切记没有0年。
QUARTER 季度域,其值为1到4。
MONTH 月份域,其值为1到12.
WEEK 星期域,求输入的日期在所在的年份里是第几周。根据ISO 8601(每个星期是从星期一开始的),一年的第一周包含该年的1月4日。换句话说,一年的第一个星期四在第一周。因此,某年1月的头几天可能是前一年的第五十二或者第五十三周,也可能是当年的第一周。比如,2010年1月1日是2009年的第五十三周,而2009年1月1日是2009年的第一周。
DOW 星期域,求出所输入的日期是星期几,其值为0(星期天)到6(星期六)
DAY 日期域,其值为1到30 / 31。
DOY 日期域,表示当前日期是该年中的第几天,其值为1到365 / 366。
JULIAN 儒略日域,将输入的日期换算成儒略日表示。
当expression是time类型时,DATE_PART支持的域名有
HOUR 小时域,其值为0到23。
MINUTE 分钟域,取值为0到59。
SECOND 秒域,包括小数部分。
MILLISECONDS 秒域,将秒域值换算成毫秒输出。
MICROSECONDS 秒域,将秒域值换算成微秒输出。
EPOCH 秒域,将输入的时间换算成秒输出。
当expression是time with time zone类型时,DATE_PART支持的域名有
HOUR 小时域,其值为0到23。
MINUTE 分钟域,取值为0到59。
SECOND 秒域,包括小数部分。
MILLISECONDS 秒域,将秒域值换算成毫秒输出。
MICROSECONDS 秒域,将秒域值换算成微秒输出。
EPOCH 秒域,将输入的时间换算成秒输出。
TIMEZONE 与UTC的时区偏移,以秒记。正数对应 UTC 东边的时区,负数对应 UTC 西边的时区
TIMEZONE_HOUR 时区偏移的小时部分。
TIMEZONE_MINUTE 时区偏移的分钟部分。
当expression是timestamp类型时,DATE_PART支持的域名有
MILLENNIUM 千年域,第三个千年是从2001年1月1日始至3000年12月31日止。
CENTURY 世纪域,21世纪是从2001年1月1日始至2100年12月31日止。
DECADE 十年域,第199个十年是从1990年1月1日始至1999年12月31日止。
YEAR 年份域,切记没有0年。
QUARTER 季度域,其值为1到4。
MONTH 月份域,其值为1到12.
WEEK 星期域,求输入的日期在所在的年份里是第几周。根ISO 8601(每个星期是从星期一开始的),一年的第一周包含该年的1月4日。换句话说,一年的第一个星期四在第一周。因此,某年1月的头几天可能是前一年的第五十二或者第五十三周,也可能是当年的第一周。比如,2010年1月1日是2009年的第五十三周,而2009年1月1日是2009年的第一周。
DOW 星期域,求出所输入的日期是星期几,其值为0(星期天)到6(星期六)
DAY 日期域,其值为1到30 / 31。
DOY 日期域,表示当前日期是该年中的第几天,其值为1到365 / 366。
JULIAN 儒略日域,将输入的日期时间换算成儒略日表示。不满一天的时间以小数表示。
HOUR 小时域,其值为0到23。
MINUTE 分钟域,取值为0到59。
SECOND 秒域,包括小数部分。
MILLISECONDS 秒域,将输入的秒域值换算成毫秒输出。
MICROSECONDS 秒域,将输入的秒域值换算成微秒输出。
EPOCH 秒域,将输入的日期时间与1970年1月1日 00:00:00的差值换算成秒输出(结果可能是负数)。
当expression是timestamp with time zone类型时,DATE_PART支持的域名有
MILLENNIUM 千年域,第三个千年是从2001年1月1日始至3000年12月31日止。
CENTURY 世纪域,21世纪是从2001年1月1日始至2100年12月31日止。
DECADE 十年域,第199个十年是从1990年1月1日始至1999年12月31日止。
YEAR 年份域,切记没有0年。
QUARTER 季度域,其值为1到4。
MONTH 月份域,其值为1到12.
WEEK 星期域,求输入的日期在所在的年份里是第几周。根ISO 8601(每个星期是从星期一开始的),一年的第一周包含该年的1月4日。换句话说,一年的第一个星期四在第一周。因此,某年1月的头几天可能是前一年的第五十二或者第五十三周,也可能是当年的第一周。比如,2010年1月1日是2009年的第五十三周,而2009年1月1日是2009年的第一周。
DOW 星期域,求出所输入的日期是星期几,其值为0(星期天)到6(星期六)
DAY 日期域,其值为1到30 / 31。
DOY 日期域,表示当前日期是该年中的第几天,其值为1到365 / 366。
JULIAN 儒略日域,将输入的日期时间换算成儒略日表示。不满一天的时间以小数表示。
HOUR 小时域,其值为0到23。
MINUTE 分钟域,取值为0到59。
SECOND 秒域,包括小数部分。
MILLISECONDS 秒域,将输入的秒域值换算成毫秒输出。
MICROSECONDS 秒域,将输入的秒域值换算成微秒输出。
EPOCH 秒域,将输入的日期时间与1970年1月1日 00:00:00的差值换算成秒输出(结果可能是负数)。
TIMEZONE 系统时区(并不是输入的时区)与UTC的时区偏移,以秒记。正数对应 UTC 东边的时区,负数对应 UTC 西边的时区
TIMEZONE_HOUR 时区偏移的小时部分。
TIMEZONE_MINUTE 时区偏移的分钟部分。
示例¶
示例1: 用 DATE_PART 获得世纪域信息
-- 用 DATE_PART 获得世纪域信息
SELECT DATE_PART('CENTURY', TIMESTAMP '2003-12-21 20:39:39');
DATE_PART(double precision) |
---------------------------------
21 |
总数目:1