SQL - 将 yyyy-MM-ddThh:mm:ssZ 转换为没有时间的简单日期

Posted

技术标签:

【中文标题】SQL - 将 yyyy-MM-ddThh:mm:ssZ 转换为没有时间的简单日期【英文标题】:SQL - convert yyyy-MM-ddThh:mm:ssZ to simple date with no time 【发布时间】:2020-11-17 17:35:23 【问题描述】:

我需要将格式为 yyyy-MM-ddThh:mm:ssZ 的日期/时间转换为没有时间的简单日期。

示例:2020-10-21T07:28:48.021Z 至:2020-10-21

CAST(XX AS TIMESTAMP) 工作正常,但它不会像我想要的那样减少我的 sql 查询中的时间。

有什么想法吗?谢谢!

【问题讨论】:

请用您正在运行的数据库标记您的问题:mysql、oracle、sqlserver...? 【参考方案1】:

以下是 BigQuery 标准 SQL

select date('2020-10-21T07:28:48.021Z')

有输出

【讨论】:

【参考方案2】:

cast(字段作为日期)或 try_cast(字段作为日期) /* 如果不可转换,try cast 不会返回错误,它会返回 null*/

【讨论】:

biq quey 不喜欢:TRY_CAST(field AS DATE) as new_field "无效日期:'2020-10-21T07:28:48.021Z' 所以您使用的是 Big Query?这将是包含在原始问题中的非常有用的信息,因为每个 sql 数据库产品处理日期都略有不同。 是的 Biq 查询。这没有错误,但这不是我想要的:CAST(Dat_cre AS TIMESTAMP) as DATE【参考方案3】:

在不同的数据库中做的不同,但在 DB2 中,它超级简单:

select date(thatTimestamp)
  from sysibm.sysdummy1;

HTH!

【讨论】:

【参考方案4】:

你想要演员(2020-10-21T07:28:48.021Z 作为日期)

选择 cast(dateField as date) 作为 [DateFieldName]

【讨论】:

投射日期不起作用!那是我的问题.... 您使用的是什么数据库管理系统?上面的代码是针对 sql server 的。在您的示例中,您说强制转换时间戳不起作用。 Biq 查询。 Cast Timestamp IS 工作,但我得到 [date + time],我只想要 [date] 我很抱歉。看看这个question,看看它是否能给你答案。 Tanhks,我查过了,但我还有这个:

以上是关于SQL - 将 yyyy-MM-ddThh:mm:ssZ 转换为没有时间的简单日期的主要内容,如果未能解决你的问题,请参考以下文章

如何将纪元转换为 yyyy-mm-ddThh:mm:ss linux

如何将 yyyymmdd hhmmss Etc/GMT 转换为 yyyy-mm-ddThh:mm:ss

尝试使用以下格式获取当前时间戳 YYYY-MM-DDTHH:MM:SS.MSSZ

如何使用日期格式化程序为“YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z]”转换日期?

标签无效 "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" 预计。

无法在 MYSQL 中解析 varchar YYYY-mm-ddTHH:MM:ss