【问题标题】:how can I subtract time from a date time field to adjust a date time field?如何从日期时间字段中减去时间来调整日期时间字段?
【发布时间】:2020-02-26 20:44:40
【问题描述】:

我目前有一个格式如下的日期时间字段:“2019-07-07 15:00:00 UTC”。但是,这个日期比应有的日期提前了一个小时 25 分钟。如何在新时间字段中从该时间减去 1 小时 25 分钟?

例如,“我需要 2019-07-07 15:00:00 UTC”变为“2019-07-07 13:35:00 UTC”

语言:SQL 数据库:使用 Bigquery 拉取,它从 Google Cloud 拉取

所附图片显示了我正在使用的 SELECT 语句的一部分。第一行是日期,但在数据库字符串形式中,第二行将其转换为日期,第三行尝试将日期转换为减去一小时 25 分钟。

提前感谢您的帮助!

【问题讨论】:

  • 您使用什么语言?你尝试过什么(你能分享你的尝试吗)?此外,您可能应该在您的问题中添加相关的语言标签,以获得更多关注。 (但是对于您使用的任何语言,“日期算术”已经被询问和回答的可能性很大。)
  • 是的,我环顾四周,没有看到任何有用的东西。我正在使用 SQL。我在这里尝试了转换和日期添加功能 - stackoverflow.com/questions/12756769/… - 但我不断收到“找不到函数”错误。我也尝试过这样的日期部分: datepart(hh,-1.5,starts_at) 但这也不起作用。
  • 将这些添加到您的问题中:您正在使用的数据库(将其添加为标签);您编写的 SQL(将其添加为格式化代码);以及您收到的错误消息的全文。所有这些都将帮助人们审查您的问题。
  • 是的,我正在使用 Google Bigquery - 我在原始帖子的上方添加了它,但应该为您评论它

标签: sql date datetime google-bigquery subtraction


【解决方案1】:

你可以试试下面的减法Hours

SELECT TIMESTAMP_SUB(TIMESTAMP "2019-07-07 15:00:00 UTC", INTERVAL 1 HOUR)

相应地更改您的间隔。在您的情况下,您可以将其转换为分钟,然后使用MINUTE INTERVAL,如下所示

SELECT TIMESTAMP_SUB(starts_at, INTERVAL 85 MINUTE) 

【讨论】:

  • 当在 BigQuery 上运行第一个查询时,会出现以下错误:Interval value must be coercible to INT64 type at [1:68],因为间隔不能是浮点数。
  • 啊!对..我已经更新了我的答案。感谢您注意到@milia
猜你喜欢
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
  • 2023-03-26
相关资源
最近更新 更多