在 bigquery 中将'dd-mmm-yy'转换为'%Y-%m-%d %H:%M:%S';



我想将STRING数据类型转换为DATETIME。在bigquery 中将dd-mmm-yy转换为%Y-%m-%d %H:%M:%S

例如:Select PARSE_TIMESTAMP('%Y-%m-%d %H:%M:%S', '01-JAN-2021') as parse;

转换为日期/时间数据类型

如果您的数据不属于其中一种数据类型,则可以使用PARSE函数之一的CAST进行转换。

使用CAST进行转换

要将STRING转换为Date数据类型之一,STRING必须采用以下格式:

  1. 日期:YYYY-MM-DD
  2. DATETIME:YYYY-MM-DD HH:MM:SS
  3. 时间戳:YYYY-MM-DD HH:MM:SS[时区]
  4. 时间:HH:MM:SS

SELECT CAST('2017-06-04 14:44:00' AS DATETIME) AS datetime

日期时间

2017-06-04 14:44:00

使用Parse从STRING转换为DATETIME数据类型

要使用PARSE函数之一,您的STRING可以按照您喜欢的任何方式进行格式化,您只需告诉该函数应该如何读取即可。每个日期/时间数据类型都有一个PARSE函数:

  1. 日期:PARSE_DATE(format_string,DATE_string(
  2. DATETIME:PARSE_DATETIME(format_string,DATETIME_string(
  3. TIMESTAMP:PARSE_TIMESTAMP(format_string,TIMESTAMP_string[,timezone](
  4. TIME:PARSE_TIME(format_string,TIME_string(

您可以在此处查看格式化字符串的完整列表

例如,如果您的日期格式为:2021年1月7日12:44:02,您可以使用以下格式:

SELECT PARSE_DATETIME('%d-%b-%Y %H:%M:%S', '07-Jan-2021 12:44:02') AS parsed_datetime

parsed_datetime

2021-07-01 12:44:02

格式化您的日期/时间

以更易于接近的格式查看数据。我们可以使用BigQuery中的FORMAT函数。

每个日期/时间数据类型都有一个FORMAT函数:

  1. 日期:FORMAT_DATE(FORMAT_string,DATE(
  2. DATETIME:FORMAT_DATETIME(FORMAT_string,DATETIME(
  3. TIMESTAMP:FORMAT_TIMESTAMP(FORMAT_string,TIMESTAMP[,timezone](
  4. TIME:FORMAT_TIME(FORMAT_string,时间(

这里的FORMAT字符串与此处的PARSE函数相同

因此,如果你想以YYYY-MM-DD HH:MM:SS的格式显示你的日期,那么你可以执行FORMAT_DATETIME('%Y-%m-%d %H:%M:%S', datetime_column)

⚠️值得注意的是,FORMAT函数返回STRING,因此,如果您想将ORMATATE时,它将不起作用。

最新更新