如何使用sql cast操作符将包含日期和时间的字符串列转换为仅日期?

我有一个名为“ created_date”的列,其数据类型为字符串。它包含模式日期和时间的记录。我想创建另一个名为“ modified_date”的列,该列将仅使用“ created_date”列中的日期,以便以后可以对日期进行一些数学计算。我想使用 SQL CAST 运算符执行此操作。

下面是我期望输出如何-

ID        created_date         modified_date
1      2017-11-01 16:30:40     2017-11-01
2      2017-11-23 15:30:40     2017-11-23
3      2017-11-16 14:30:40     2017-11-16

有关如何执行此操作的任何建议?

zy19890512 回答:如何使用sql cast操作符将包含日期和时间的字符串列转换为仅日期?

我将假设您正在使用BigQuery。

您可以使用:

select date(created_date)

您还可以更具体:

select date(substr(created_date,1,10))

或转换为datetime,然后转换为date

select date(cast(created_date as datetime))
,

您可以使用简单的date_format()和str_to_date()

select date_format(str_to_date(created_date,'%Y-%m-%d %T'),'%Y-%m-%d') modified_date
,

以下是用于BigQuery标准SQL

#standardSQL
SELECT *,DATE(TIMESTAMP(created_date)) modified_date
FROM `project.dataset.table`
  

我想使用SQL CAST运算符执行此操作。

注意:我不建议将通用CAST用于DATE,DATETIME,TIMESTAMP数据类型。相反,您应该使用此答案中的相应功能。或者,如果字符串不直接表示此类数据类型,则可以使用相应的PARSE_函数,在其中可以设置以字符串表示日期/日期时间/时间戳的格式!

本文链接:https://www.f2er.com/3163960.html

大家都在问