华为云用户手册

  • TIME 功能描述 将时间字符串以"HH:mm:ss[.fff]"形式解析为SQL时间,结果以TIME类型返回。 语法说明 TIME TIME string 入参说明 参数名 数据类型 参数说明 string STRING 时间字符串。 注意该字符串格式必须"HH:mm:ss[.fff]",否则语义校验会报错。 示例 测试语句 SELECT TIME "10:11:12" AS `result`, TIME "10:11:12.032" AS `result2` FROM testtable; 测试结果 result result2 10:11:12 10:11:12.032
  • CURRENT_TIMESTAMP 功能描述 以UTC(UTC+0)时区返回当前SQL时间戳,返回类型为TIMESTAMP(3)。 语法说明 TIMESTAMP(3) CURRENT_TIMESTAMP 入参说明 无。 示例 测试语句 SELECT CURRENT_TIMESTAMP AS `result` FROM testtable; 测试结果 result 2021-10-28 08:33:51.606
  • 函数说明 表1 时间函数 函数 返回值 描述 DATE string DATE 将日期字符串以"yyyy-MM-dd"的形式解析为SQL日期。 TIME string TIME 将时间字符串以"HH:mm:ss[.fff]"形式解析为SQL时间。 TIMESTAMP string TIMESTAMP 将时间字符串转换为时间戳,时间字符串格式为:"yyyy-MM-dd HH:mm:ss[.fff]"。 INTERVAL string range INTERVAL interval表示时间间隔。有两种类型,分别为: 一种为"yyyy-MM"即保存年份和月份,精度到月份,它的range参数可以为YEAR或者YEAR To Month。 一种为天时间"dd HH:mm:sss.fff",用来保存天数、小时、分钟、秒和毫秒, 精度最低到毫秒。它的range参数可以为DAY、MINUTE、DAY TO HOUR、DAY TO SECOND。 例如: INTERVAL '10 00:00:00.004' DAY TO second表示间隔10天4毫秒。 INTERVAL '10' DAY表示间隔10天 INTERVAL '2-10' YEAR TO MONTH表示间隔2年10个月。 CURRENT_DATE DATE 以UTC时区返回当前SQL日期。 CURRENT_TIME TIME 以UTC时区返回当前SQL时间。 CURRENT_TIMESTAMP TIMESTAMP 以UTC时区返回当前SQL时间戳。 LOCALTIME TIME 返回当前时区的当前SQL时间。 LOCALTIMESTAMP TIMESTAMP 返回当前时区的当前SQL时间戳。 EXTRACT(timeintervalunit FROM temporal) BIGINT 提取时间点的一部分或者时间间隔。以int类型返回该部分。 例如:提取日期“2006-06-05”中的日为5 EXTRACT(DAY FROM DATE '2006-06-05') 返回5。 YEAR(date) BIGINT 返回输入时间的年份 例如:YEAR(DATE '1994-09-27') 返回1994 QUARTER(date) BIGINT 从SQL日期返回表示该日期季度的数字。 MONTH(date) BIGINT 返回输入时间的月份 例如:MONTH(DATE '1994-09-27')返回9 WEEK(date) BIGINT 计算当前日期是一年中的第几周 例如:WEEK(DATE '1994-09-27') 返回39 DAYOFYEAR(date) BIGINT 计算当前日期是一年中的第几天 例如:DAYOFYEAR(DATE '1994-09-27') 返回270 DAYOFMONTH(date) BIGINT 计算当前日期是这个月的第几天 例如:DAYOFMONTH(DATE '1994-09-27') 返回27 DAYOFWEEK(date) BIGINT 计算当前日期是当前周的第几天 其中周日设为1 例如:DAYOFWEEK(DATE '1994-09-27') 返回3 HOUR(timestamp) BIGINT 返回当前时间戳的24小时制的小时数,范围0-23 例如:HOUR(TIMESTAMP '1994-09-27 13:14:15') 返回13 MINUTE(timestamp) BIGINT 返回当前时间戳中的分钟数,范围0-59 例如:MINUTE(TIMESTAMP '1994-09-27 13:14:15') 返回14 SECOND(timestamp) BIGINT 返回当前时间戳中的秒数,范围0-59 例如:SECOND(TIMESTAMP '1994-09-27 13:14:15') 返回15 FLOOR(timepoint TO timeintervalunit) TIME 向下对齐时间。 例如:FLOOR(TIME '12:44:31' TO MINUTE)按分钟对齐到12:44:00。 CEIL(timepoint TO timeintervalunit) TIME 向上对齐时间。 例如:CEIL(TIME '12:44:31' TO MINUTE)按分钟对齐到12:45:00。 (timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) BOOLEAN 若两个时间范围有重叠,则返回TRUE 例如: (TIME '2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) 返回TRUE (TIME '9:00:00', TIME '10:00:00') OVERLAPS (TIME '10:15:00', INTERVAL '3' HOUR) 返回 FALSE DATE_FORMAT(timestamp, string) STRING 将日期从源格式转换至目标格式 TIMESTAMPADD(timeintervalunit, interval, timepoint) TIMESTAMP/DATE/TIME 将整型interval与timeintervalunit组成的结果添加日期或日期时间到timepoint中,并返回添加后的日期时间 例如:TIMESTAMPADD(WEEK, 1, DATE '2003-01-02') 返回2003-01-09 TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) INT 返回timepoint1和timepoint2相差的时间单元数量 timepointunit表示时间单元,应该是SECOND、MINUTE、HOUR、DAY、MONTH或YEAR 例如: TIMESTAMPDIFF(DAY, TIMESTAMP '2003-01-02 10:00:00', TIMESTAMP '2003-01-03 10:00:00') 返回1 CONVERT_TZ(string1, string2, string3) TIMESTAMP 将string2时区的时间string1转换为其在string3时区的对应时间 例如:CONVERT_TZ('1970-01-01 00:00:00', 'UTC', 'Country A/City A') 返回'1969-12-31 16:00:00' FROM_UNIXTIME(numeric[, string]) STRING 根据时间戳numeric和当前时区返回string格式的时间,单位为秒 string默认格式为'YYYY-MM-DD hh:mm:ss' 例如:FROM_UNIXTIME(44)返回1970-01-01 09:00:44 UNIX_TIMESTAMP() BIGINT 返回当前时间的时间戳,单位为秒 UNIX_TIMESTAMP(string1[, string2]) BIGINT 将string2格式的时间字符串string1转为时间戳,单位为秒 string2默认格式为'yyyy-MM-dd HH:mm:ss' TO_DATE(string1[, string2]) DATE 将string2格式的日期字符串,转换为DATE类型 string2默认格式为 'yyyy-MM-dd' TO_TIMESTAMP(string1[, string2]) TIMESTAMP 将string2格式的日期时间字符串转换为TIMESTAMP类型 string2默认格式为'yyyy-MM-dd HH:mm:ss'
  • FROM_UNIXTIME 功能描述 参考语法说明,本函数根据时间戳numeric和当前时区返回string格式的时间。 语法说明 STRING FROM_UNIXTIME(numeric[, string]) 入参说明 参数名 数据类型 参数说明 numeric BIGINT 内部时间戳值,表示自'1970-01-01 00:00:00' UTC 以来的秒数,值可以由UNIX_TIMESTAMP() 函数生成。 string STRING 时间字符串格式。如果该参数不指定,则默认为'yyyy-MM-dd HH:mm:ss'。 示例 测试语句 SELECT FROM_UNIXTIME(44) AS `result`, FROM_UNIXTIME(44, 'yyyy:MM:dd') AS `result2` FROM testtable; 测试结果 result result2 1970-01-01 08:00:44 1970:01:01
  • TO_TIMESTAMP 功能描述 将string2格式的日期时间字符串string1转换为TIMESTAMP类型返回。 语法说明 TIMESTAMP TO_TIMESTAMP(string1[, string2]) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串。不符合格式的字符串会返回NULL。 string2 STRING 日期字符串格式。如果该参数不指定,则默认为'yyyy-MM-dd HH:mm:ss' 。 示例 测试语句 SELECT TO_TIMESTAMP('1997-04-25', 'yyyy-MM-dd') AS `result`, TO_TIMESTAMP('1997-04-25 00:00:00') AS `result2`, TO_TIMESTAMP('1997-04-25 00:00:00', 'yyyy-MM-dd HH:mm:ss') AS `result3` FROM testtable; 测试结果 result result2 result3 1997-04-25 00:00 1997-04-25 00:00 1997-04-25 00:00
  • UNIX_TIMESTAMP(string1[, string2]) 功能描述 参数语法说明,本函数将以string2格式的时间字符串string1转为Unix 时间戳(以秒为单位)。以BIGINT类型返回。 语法说明 BIGINT UNIX_TIMESTAMP(string1[, string2]) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串。不符合string2参数格式的字符串语法会报错。 string2 STRING 时间字符串格式。如果不指定该参数,则默认为'yyyy-MM-dd HH:mm:ss' 。 示例 测试语句 SELECT UNIX_TIMESTAMP('1997-04-25', 'yyyy-MM-dd') AS `result`, UNIX_TIMESTAMP('1997-04-25 00:00:10', 'yyyy-MM-dd HH:mm:ss') AS `result2`, UNIX_TIMESTAMP('1997-04-25 00:00:00') AS `result3` FROM testtable; 测试结果 result result2 result3 861897600 861897610 861897600
  • TO_DATE 功能描述 参数语法说明,本函数将string2格式的日期字符串string1转换为DATE类型。 语法说明 DATE TO_DATE(string1[, string2]) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串。不符合格式的字符串会执行报错。 string2 STRING 字符串格式。如果不指定该参数,则默认为'yyyy-MM-dd' 。 示例 测试语句 SELECT TO_DATE('1997-04-25') AS `result`, TO_DATE('1997:04:25', 'yyyy-MM-dd') AS `result2`, TO_DATE('1997-04-25 00:00:00', 'yyyy-MM-dd HH:mm:ss') AS `result3` FROM testtable; 测试结果 result result2 result3 1997-04-25 1997-04-25 1997-04-25
  • TIMESTAMPDIFF 功能描述 参考语法说明,本函数功能为返回timepoint1和timepoint2之间的时间间隔,间隔的单位由第一个参数timepointunit指定。 语法说明 INT TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) 入参说明 参数名 数据类型 参数说明 timepointunit TIMEUNIT 时间单位。取值范围为: SECOND、MINUTE、HOUR、DAY、MONTH、YEAR。 timepoint1/timepoint2 TIMESTAMP/DATE 时间点。 示例 测试语句 SELECT TIMESTAMPDIFF(DAY, TIMESTAMP '1997-04-25 10:00:00', TIMESTAMP '1997-04-28 10:00:00') AS `result`, TIMESTAMPDIFF(DAY, DATE '1997-04-25', DATE '1997-04-28') AS `result2`, TIMESTAMPDIFF(DAY, TIMESTAMP '1997-04-27 10:00:20', TIMESTAMP '1997-04-25 10:00:00') AS `result3` FROM testtable; 测试结果 result result2 result3 3 3 -2
  • CONVERT_TZ 功能描述 参考语法说明,本函数将日期时间string1(具有默认ISO时间戳格式'yyyy-MM-dd HH:mm:ss' )从时区string2转换为时区string3的值,结果以STRING类型返回。 语法说明 STRING CONVERT_TZ(string1, string2, string3) 入参说明 参数名 数据类型 参数说明 string1 STRING SQL时间戳形式的字符串,不符合格式的字符串会返回NULL。 string2 STRING 转换前时区。时区的格式应该是缩写如“PST”,全名如“Country A/City A”,或自定义ID如“GMT-08:00”。 string3 STRING 转换后时区。时区的格式应该是缩写如“PST”,全名如“Country A/City A”,或自定义ID如“GMT-08:00”。 示例 测试语句 SELECT CONVERT_TZ(1970-01-01 00:00:00, UTC, Country A/City A) AS `result`, CONVERT_TZ(1997-04-25 10:00:00, UTC, GMT-08:00) AS `result2` FROM testtable; 测试结果 result result2 1969-12-31 16:00:00 1997-04-25 02:00:00
  • TIMESTAMPADD 功能描述 参考语法说明,本函数功能为将整型interval与timeintervalunit组成的结果添加到timepoint中,并返回添加后的日期时间。 TIMESTAMPADD函数返回结果与timepoint相同。例外场景为:如果timepoint输入类型为TIMESTAMP,也可以将TIMESTAMPADD函数返回结果插入到DATE类型的表字段中。 语法说明 TIMESTAMP(3)/DATE/TIME TIMESTAMPADD(timeintervalunit, interval, timepoint) 入参说明 参数名 数据类型 参数说明 timeintervalunit TIMEUNIT 时间单位。 interval INT 整型的时间间隔。 timepoint TIMESTAMP/DATE/TIME 时间点 示例 测试语句 SELECT TIMESTAMPADD(WEEK, 1, DATE '1997-04-25') AS `result`, TIMESTAMPADD(QUARTER, 1, TIMESTAMP '1997-04-25 10:11:12') AS `result2`, TIMESTAMPADD(SECOND, 2, TIME '10:11:12') AS `result3` FROM testtable; 测试结果 result result2 result3 1997-05-02 如果该字段插入到TIMESTAMP类型的表字段中,则返回:1997-07-25T10:11:12 如果该字段插入到DATE类型的表字段中,则返回:1997-07-25 10:11:14
  • DATE_FORMAT 功能描述 将时间戳或时间戳格式的字符串转换为指定格式的日期字符串。 语法说明 STRING DATE_FORMAT(timestamp, dateformat) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP/STRING 时间点。 dateformat STRING 日期格式字符串。 示例 测试语句 SELECT DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yyyy-MM-dd HH:mm:ss') AS `result`, DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yyyy-MM-dd') AS `result2`, DATE_FORMAT(TIMESTAMP '1997-04-25 10:11:12', 'yy/MM/dd HH:mm') AS `result3`, DATE_FORMAT('1997-04-25 10:11:12', 'yyyy-MM-dd') AS `result4` FROM testtable; 测试结果 result result2 result3 result4 1997-04-25 10:11:12 1997-04-25 97/04/25 10:11 1997-04-25
  • MINUTE 功能描述 返回当前时间戳中的分钟数(0 到 59 之间的整数),返回类型为BIGINT。 语法说明 BIGINT MINUTE(timestamp) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP SQL时间戳。 示例 测试语句 SELECT MINUTE(TIMESTAMP '1997-04-25 10:11:12') AS `result` FROM testtable; 测试结果 result 11
  • SECOND 功能描述 返回当前时间戳中的秒数(0 到 59 之间的整数),返回类型为BIGINT。 语法说明 BIGINT SECOND(timestamp) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP SQL时间戳。 示例 测试语句 SELECT SECOND(TIMESTAMP '1997-04-25 10:11:12') AS `result` FROM testtable; 测试结果 result 12
  • FLOOR 功能描述 返回将时间点向下取值到指定时间单位的值。 语法说明 TIME/TIMESTAMP(3) FLOOR(timepoint TO timeintervalunit) 入参说明 参数名 数据类型 参数说明 timepoint TIMESTAMP/TIME SQL时间或SQL时间戳。 timeintervalunit TIMEUNIT 时间单位,类型可以是YEAR/QUARTER/MONTH/WEEK/DAY/DOY/HOUR/MINUTE/SECOND。 示例 测试语句。注意以下userDefined结果表语法说明,请参考userDefined结果表。 create table PrintSink ( message TIME, message2 TIME, message3 TIMESTAMP(3) ) with ( 'connector.type' = 'user-defined', 'connector.class-name' = 'com.swqtest.flink.sink.PrintSink'--注意修改为自定义的类,具体请参考userDefined结果表语法说明。 ); INSERT INTO PrintSink SELECT FLOOR(TIME '13:14:15' TO MINUTE) AS `result` FLOOR(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result2`, FLOOR(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result3`; 测试结果 PrintSink表的字段值分别为: message message2 message3 13:14 13:14 1997-04-25T13:14
  • CEIL 功能描述 返回将时间点向上取值到指定时间单位的值。 语法说明 TIME/TIMESTAMP(3) CEIL(timepoint TO timeintervalunit) 入参说明 参数名 数据类型 参数说明 timepoint TIMESTAMP/TIME SQL时间或SQL时间戳。 timeintervalunit TIMEUNIT 时间单位,类型可以是YEAR/QUARTER/MONTH/WEEK/DAY/DOY/HOUR/MINUTE/SECOND。 示例 测试语句。注意以下userDefined结果表语法说明,请参考userDefined结果表。 create table PrintSink ( message TIME, message2 TIME, message3 TIMESTAMP(3) ) with ( 'connector.type' = 'user-defined', 'connector.class-name' = 'com.swqtest.flink.sink.PrintSink'--注意修改为自定义的类,具体请参考userDefined结果表语法说明。 ); INSERT INTO PrintSink SELECT CEIL(TIME '13:14:15' TO MINUTE) AS `result` CEIL(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result2`, CEIL(TIMESTAMP '1997-04-25 13:14:15' TO MINUTE) AS `result3`; 测试结果 result result2 result3 13:15 13:15 1997-04-25T13:15
  • OVERLAPS 功能描述 若两个时间范围有重叠,则返回TRUE,反之,则返回FALSE。 语法说明 BOOLEAN (timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) 入参说明 参数名 数据类型 参数说明 timepoint1/timepoint2 DATE/TIME/TIMESTAMP 时间点。 temporal1/temporal2 DATE/TIME/TIMESTAMP/INTERVAL 时间点或时间间隔。 (timepoint, temporal)在判断是否重叠时为闭区间。 temporal可以是DATE/TIME/TIMESTAMP也可以是INTERVAL。 当temporal是DATE/TIME/TIMESTAMP时,(timepoint, temporal)表示timepoint, temporal之间的时间间隔。允许temporal在timepoint之前,如(DATE '1997-04-25', DATE '1997-04-23')也合法。 当temporal是INTERVAL时,(timepoint, temporal)表示timepoint, timepoint+temporal之间的时间间隔。 必须保证(timepoint1, temporal1)和(timepoint2, temporal2)是同一数据类型的时间间隔。 示例 测试语句 SELECT (TIME '2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) AS `result`, (TIME '2:30:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) AS `result2`, (TIME '2:30:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:31:00', INTERVAL '2' HOUR) AS `result3`, (TIME '9:00:00', TIME '10:00:00') OVERLAPS (TIME '10:00:00', INTERVAL '3' HOUR) AS `result4`, (TIMESTAMP '1997-04-25 12:00:00', TIMESTAMP '1997-04-25 12:20:00') OVERLAPS (TIMESTAMP '1997-04-25 13:00:00', INTERVAL '2' HOUR) AS `result5`, (DATE '1997-04-23', INTERVAL '2' DAY) OVERLAPS (DATE '1997-04-25', INTERVAL '2' DAY) AS `result6`, (DATE '1997-04-25', DATE '1997-04-23') OVERLAPS (DATE '1997-04-25', INTERVAL '2' DAY) AS `result7` FROM testtable; 测试结果 result result2 result3 result4 result5 result6 result7 true true false true false true true
  • EXTRACT 功能描述 提取时间点或时间间隔中指定某一时间单位的部分,以BIGINT类型返回。 语法说明 BIGINT EXTRACT(timeinteravlunit FROM temporal) 入参说明 参数名 数据类型 参数说明 timeinteravlunit TIMEUNIT 需要从时间点或时间间隔中提取的时间单位,取值可以是:YEAR/QUARTER/MONTH/WEEK/DAY/DOY/HOUR/MINUTE/SECOND。 temporal DATE/TIME/TIMESTAMP/INTERVAL 时间点或时间间隔。 不允许指定不存在于时间点或时间间隔中的时间单位,否则作业会提交失败。 例如如下错误语句,会报错YEAR不能从TIME中提取。 SELECT EXTRACT(YEAR FROM TIME '12:44:31' ) AS `result` FROM testtable; 示例 测试语句 SELECT EXTRACT(YEAR FROM DATE '1997-04-25' ) AS `result`, EXTRACT(MINUTE FROM TIME '12:44:31') AS `result2`, EXTRACT(SECOND FROM TIMESTAMP '1997-04-25 13:14:15') AS `result3`, EXTRACT(YEAR FROM INTERVAL '2-10' YEAR TO MONTH) AS `result4`, FROM testtable; 测试结果 result result2 result3 result4 1997 44 15 2
  • QUARTER 功能描述 从SQL日期返回表示该日期季度的数字(1到4之间的整数),返回类型为BIGINT。 语法说明 BIGINT QUARTER(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT QUARTER(DATE '1997-04-25' ) AS `result` FROM testtable; 测试结果 result 2
  • DAYOFWEEK 功能描述 计算当前日期是当前周的第几天(1 到 7之间的整数),以BIGINT类型返回。 需要注意这里自然周的起点是星期天,即每周的第1天是星期天,第2天是星期一,依次类推。 语法说明 BIGINT DAYOFWEEK(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT DAYOFWEEK(DATE '1997-04-25') AS `result` FROM testtable; 测试结果 result 6
  • HOUR 功能描述 从当前时间戳获取以24小时制的小时数进行返回,范围0-23(0 到 23 之间的整数),返回类型为BIGINT。 语法说明 BIGINT HOUR(timestamp) 入参说明 参数名 数据类型 参数说明 timestamp TIMESTAMP SQL时间戳。 示例 测试语句 SELECT HOUR(TIMESTAMP '1997-04-25 10:11:12') AS `result` FROM testtable; 测试结果 result 10
  • DAYOFYEAR 功能描述 计算当前日期是一年中的第几天(返回1到366 之间的整数),以BIGINT类型返回。 语法说明 BIGINT DAYOFYEAR(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT DAYOFYEAR(DATE '1997-04-25' ) AS `result` FROM testtable; 测试结果 result 115
  • DAYOFMONTH 功能描述 计算当前日期是这个月的第几天(1到31之间的整数),以BIGINT类型返回。 语法说明 BIGINT DAYOFMONTH(date) 入参说明 参数名 数据类型 参数说明 date DATE SQL日期。 示例 测试语句 SELECT DAYOFMONTH(DATE '1997-04-25' ) AS `result` FROM testtable; 测试结果 result 25
  • TIMESTAMP 功能描述 将时间字符串转换为时间戳,时间字符串格式为:"yyyy-MM-dd HH:mm:ss[.fff]",以TIMESTAMP(3)类型返回。 语法说明 TIMESTAMP(3) TIMESTAMP string 入参说明 参数名 数据类型 参数说明 string STRING 时间戳字符串。 注意该字符串格式必须为"yyyy-MM-dd HH:mm:ss[.fff]",否则语义校验会报错。 示例 测试语句 SELECT TIMESTAMP "1997-04-25 13:14:15" AS `result`, TIMESTAMP "1997-04-25 13:14:15.032" AS `result2` FROM testtable; 测试结果 result result2 1997-04-25 13:14:15 1997-04-25 13:14:15.032
  • DATE 功能描述 DATE函数将"yyyy-MM-dd"日期格式的字符串解析为DATE类型的日期。 语法说明 DATE DATE string 入参说明 参数名 数据类型 参数说明 string STRING SQL日期格式的字符串。 注意该字符串的格式必须为"yyyy-MM-dd"格式,否则语义校验会报错。 示例 测试语句 SELECT DATE "2021-08-19" AS `result` FROM testtable; 测试结果 result 2021-08-19
  • TIME 功能描述 将时间字符串以"HH:mm:ss[.fff]"形式解析为SQL时间,结果以TIME类型返回。 语法说明 TIME TIME string 入参说明 参数名 数据类型 参数说明 string STRING 时间字符串。 注意该字符串格式必须"HH:mm:ss[.fff]",否则语义校验会报错。 示例 测试语句 SELECT TIME "10:11:12" AS `result`, TIME "10:11:12.032" AS `result2` FROM testtable; 测试结果 result result2 10:11:12 10:11:12.032
  • INTERVAL 功能描述 INTERVAL函数用于表示时间间隔。 语法说明 INTERVAL INTERVAL string range 入参说明 参数名 数据类型 参数说明 string STRING 时间戳字符串,搭配参数range使用。两种格式类型,分别为: 一种为"yyyy-MM"即保存年份和月份,精度到月份,它的range参数可以为YEAR或者YEAR To Month。 一种为天时间"dd HH:mm:sss.fff",用来保存天数、小时、分钟、秒和毫秒, 精度最低到毫秒。它的range参数可以为DAY、MINUTE、DAY TO HOUR、DAY TO SECOND。 range INTERVAL 时间间隔说明,搭配string参数使用,详细请参考string参数说明。 取值范围为:YEAR、YEAR To Month、DAY、MINUTE、DAY TO HOUR、DAY TO SECOND。 示例 测试语句 --表示间隔10天4毫秒。 INTERVAL '10 00:00:00.004' DAY TO second --DAY表示间隔10天 INTERVAL '10' --表示间隔2年10个月 INTERVAL '2-10' YEAR TO MONTH
  • CURRENT_TIMESTAMP 功能描述 以UTC(UTC+0)时区返回当前SQL时间戳,返回类型为TIMESTAMP(3)。 语法说明 TIMESTAMP(3) CURRENT_TIMESTAMP 入参说明 无。 示例 测试语句 SELECT CURRENT_TIMESTAMP AS `result` FROM testtable; 测试结果 result 2021-10-28 08:33:51.606
  • 函数说明 表1 时间函数 函数 返回值 描述 DATE string DATE 将日期字符串以"yyyy-MM-dd"的形式解析为SQL日期。 TIME string TIME 将时间字符串以"HH:mm:ss[.fff]"形式解析为SQL时间。 TIMESTAMP string TIMESTAMP 将时间字符串转换为时间戳,时间字符串格式为:"yyyy-MM-dd HH:mm:ss[.fff]"。 INTERVAL string range INTERVAL interval表示时间间隔。有两种类型,分别为: 一种为"yyyy-MM"即保存年份和月份,精度到月份,它的range参数可以为YEAR或者YEAR To Month。 一种为天时间"dd HH:mm:sss.fff",用来保存天数、小时、分钟、秒和毫秒, 精度最低到毫秒。它的range参数可以为DAY、MINUTE、DAY TO HOUR、DAY TO SECOND。 例如: INTERVAL '10 00:00:00.004' DAY TO second表示间隔10天4毫秒。 INTERVAL '10' DAY表示间隔10天 INTERVAL '2-10' YEAR TO MONTH表示间隔2年10个月。 CURRENT_DATE DATE 以UTC时区返回当前SQL日期。 CURRENT_TIME TIME 以UTC时区返回当前SQL时间。 CURRENT_TIMESTAMP TIMESTAMP 以UTC时区返回当前SQL时间戳。 LOCALTIME TIME 返回当前时区的当前SQL时间。 LOCALTIMESTAMP TIMESTAMP 返回当前时区的当前SQL时间戳。 EXTRACT(timeintervalunit FROM temporal) BIGINT 提取时间点的一部分或者时间间隔。以int类型返回该部分。 例如:提取日期“2006-06-05”中的日为5 EXTRACT(DAY FROM DATE '2006-06-05') 返回5。 YEAR(date) BIGINT 返回输入时间的年份 例如:YEAR(DATE '1994-09-27') 返回1994 QUARTER(date) BIGINT 从SQL日期返回表示该日期季度的数字。 MONTH(date) BIGINT 返回输入时间的月份 例如:MONTH(DATE '1994-09-27')返回9 WEEK(date) BIGINT 计算当前日期是一年中的第几周 例如:WEEK(DATE '1994-09-27') 返回39 DAYOFYEAR(date) BIGINT 计算当前日期是一年中的第几天 例如:DAYOFYEAR(DATE '1994-09-27') 返回270 DAYOFMONTH(date) BIGINT 计算当前日期是这个月的第几天 例如:DAYOFMONTH(DATE '1994-09-27') 返回27 DAYOFWEEK(date) BIGINT 计算当前日期是当前周的第几天 其中周日设为1 例如:DAYOFWEEK(DATE '1994-09-27') 返回3 HOUR(timestamp) BIGINT 返回当前时间戳的24小时制的小时数,范围0-23 例如:HOUR(TIMESTAMP '1994-09-27 13:14:15') 返回13 MINUTE(timestamp) BIGINT 返回当前时间戳中的分钟数,范围0-59 例如:MINUTE(TIMESTAMP '1994-09-27 13:14:15') 返回14 SECOND(timestamp) BIGINT 返回当前时间戳中的秒数,范围0-59 例如:SECOND(TIMESTAMP '1994-09-27 13:14:15') 返回15 FLOOR(timepoint TO timeintervalunit) TIME 向下对齐时间。 例如:FLOOR(TIME '12:44:31' TO MINUTE)按分钟对齐到12:44:00。 CEIL(timepoint TO timeintervalunit) TIME 向上对齐时间。 例如:CEIL(TIME '12:44:31' TO MINUTE)按分钟对齐到12:45:00。 (timepoint1, temporal1) OVERLAPS (timepoint2, temporal2) BOOLEAN 若两个时间范围有重叠,则返回TRUE 例如: (TIME '2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR) 返回TRUE (TIME '9:00:00', TIME '10:00:00') OVERLAPS (TIME '10:15:00', INTERVAL '3' HOUR) 返回 FALSE DATE_FORMAT(timestamp, string) STRING 将日期从源格式转换至目标格式 TIMESTAMPADD(timeintervalunit, interval, timepoint) TIMESTAMP/DATE/TIME 将整型interval与timeintervalunit组成的结果添加日期或日期时间到timepoint中,并返回添加后的日期时间 例如:TIMESTAMPADD(WEEK, 1, DATE '2003-01-02') 返回2003-01-09 TIMESTAMPDIFF(timepointunit, timepoint1, timepoint2) INT 返回timepoint1和timepoint2相差的时间单元数量 timepointunit表示时间单元,应该是SECOND、MINUTE、HOUR、DAY、MONTH或YEAR 例如: TIMESTAMPDIFF(DAY, TIMESTAMP '2003-01-02 10:00:00', TIMESTAMP '2003-01-03 10:00:00') 返回1 CONVERT_TZ(string1, string2, string3) TIMESTAMP 将string2时区的时间string1转换为其在string3时区的对应时间 例如:CONVERT_TZ('1970-01-01 00:00:00', 'UTC', 'Country A/City A') 返回'1969-12-31 16:00:00' FROM_UNIXTIME(numeric[, string]) STRING 根据时间戳numeric和当前时区返回string格式的时间 string默认格式为'YYYY-MM-DD hh:mm:ss' 例如:FROM_UNIXTIME(44)返回1970-01-01 09:00:44 UNIX_TIMESTAMP() BIGINT 返回当前时间的时间戳,单位为秒 UNIX_TIMESTAMP(string1[, string2]) BIGINT 将string2格式的时间字符串string1转为时间戳,单位为秒 string2默认格式为'yyyy-MM-dd HH:mm:ss' TO_DATE(string1[, string2]) DATE 将string2格式的日期字符串,转换为DATE类型 string2默认格式为 'yyyy-MM-dd' TO_TIMESTAMP(string1[, string2]) TIMESTAMP 将string2格式的日期时间字符串转换为TIMESTAMP类型 string2默认格式为'yyyy-MM-dd HH:mm:ss'
  • 创建迁移任务 进入创建迁移任务页面。 填写迁移任务参数: 配置迁移任务名称。选择区域,即为目标实例所在的区域。 图1 迁移任务 填写迁移数据并选择模板库。 这里的目标库选择创建RDS for MySQ L实例 创建的RDS实例。 图2 填写迁移实例信息 单击“开始创建”。 迁移实例创建中,大约需要5-10分钟。迁移实例创建完成后可获取弹性公网IP信息。 配置源库信息和目标库数据库密码。 图3 配置源库和目标库 单击“下一步”。 在“迁移设置”页面,设置流速模式、迁移用户和迁移对象。 流速模式:不限速 迁移对象:全部迁移 单击“下一步”,在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁移。 查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行迁移任务预校验。 预检查完成后,且所有检查项结果均成功时,单击“下一步”。 参数对比。 如果您选择不进行参数对比,可跳过该步骤,单击页面右下角“下一步”按钮,继续执行后续操作。 如果您选择进行参数对比,对于常规参数,如果源库和目标库存在不一致的情况,建议将目标数据库的参数值通过“一键修改”按钮修改为和源库对应参数相同的值。 单击“提交任务”。 返回DRS实时迁移管理,查看迁移任务状态。 启动中状态一般需要几分钟,请耐心等待。 当状态变更为“已结束”,表示迁移任务完成。
  • 账号权限要求 当使用DRS将其他云MySQL数据库的数据迁移到云数据库 RDS for MySQL实例时,账号权限要求如表1所示,授权的具体操作请参考授权操作。 表1 迁移账号权限 迁移类型 全量迁移 全量+增量迁移 源数据库(MySQL) SELECT、SHOW VIEW、EVENT。 SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。
共100000条