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]”转换日期?