我有一个数据库,我不知道时间存储在哪个时区。但我需要知道这一点,因为我需要在某些给定的时区生成报告。
select INVOICE_DATE, timestamp(INVOICE_DATE), timestamp(INVOICE_DATE, "UTC+1"), CURRENT_TIMESTAMP(), TIMESTAMP(DATETIME (INVOICE_DATE), "UTC-2")
FROM `SALES` s
limit 1000;不管我有什么发票日期,比如说今天13:00,当我使用UTC+1时,它会变成12:00;减去而不是增加小时数。我预计会改到14点。
所以我有两个主要的问题。
我如何知道我的时间存储在哪个时区?如何更改给定记录的时区以匹配所需的时区,例如GTM-4?
发布于 2021-10-12 03:42:24
Datetime数据类型存储日期和时间。例如:
2021年10月10日晚上10:26
现在既不是本地时间也不是UTC时间...它只是一个时间说明符。如果您不知道数据保存在哪个时区,那么您就不能将其指定为绝对时间中的特定点。在与绝对时间进行比较时,它假定日期时间为UTC。
所以..。如果我的值包含" 2021-10-10T22:26:00“,现在是UTC 2021-10-10T22:26:00,那么如果我减去now- value,结果是0。
还有..。如果我的值包含" 2021-10-10T22:26:00“,现在是UTC+1 2021-10-10T22:26:00,那么如果我减去now- value,答案是1小时。
在您的示例中,如果您的当前值是13:00,并且您创建了一个时间戳值"2021-10-10T13:00:00“,并假定这将被解释为UTC+1 ...你是说你比UTC早了一个小时,时间(UTC)确实是12:00。
为了证明自己..。访问:
和
对于第一个链接,查看显示的时间,并说“如果我在时区UTC+1,这就是我在挂钟上看到的内容”。然后访问第二个链接,并说“这将是UTC的同一时间”。您将看到UTC+1比我们早了一个小时。
https://stackoverflow.com/questions/69533107
复制相似问题