【问题标题】:SQL - convert yyyy-MM-ddThh:mm:ssZ to simple date with no timeSQL - 将 yyyy-MM-ddThh:mm:ssZ 转换为没有时间的简单日期
【发布时间】: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...?

标签: sql datetime google-bigquery


【解决方案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,我查过了,但我还有这个:
      猜你喜欢
      • 1970-01-01
      • 2020-05-04
      • 2016-05-13
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多