首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL时间戳-正确的日子

MySQL时间戳-正确的日子
EN

Stack Overflow用户
提问于 2013-08-19 11:11:44
回答 4查看 113关注 0票数 1

我将事件存储在MySQL数据库中,开始日期和时间以UNIX格式存储在列'startTimeStamp‘中。

当我尝试使用简单查询获取特定日期的事件时

events FROM_UNIXTIME(startTimeStamp,'%Y-%m-%d') = '2013-08-20‘中选择*

当时间戳下的日期和时间大于凌晨2点(即2013-08-2003:00:00)时,一切正常工作,但当时间较早时,则不在同一天显示。

简单的例子:我有两个事件-相同的日期,但不同的时间

  1. 2013-08-20 03:00 (1376960400)
  2. 2013年-08-20:00:00 (1376949600)

当我运行前面提到的查询时,我将得到第一个查询,而不是第二个查询。为了得到第二个,我必须查询前一天的事件(2013-08-19)。

你知道为什么吗?也许我漏掉了什么?

非常感谢!

EN

回答 4

Stack Overflow用户

发布于 2013-08-19 11:33:19

看看你的时区是什么:

代码语言:javascript
复制
SELECT @@global.time_zone, @@session.time_zone;

然后正确地设置它:

代码语言:javascript
复制
SET time_zone = timezonename;

编辑:这可能有帮助:MySQL日期时间字段和夏时制--我如何引用“额外”小时?

票数 0
EN

Stack Overflow用户

发布于 2013-08-19 11:34:27

我想你可能选择了一个适用夏令时的地方。这种情况下的时间转移主要是在凌晨2点到凌晨3点之间,这可能会导致不同的日子。

票数 0
EN

Stack Overflow用户

发布于 2013-08-19 11:37:28

基本上是因为Unix时间戳的意思。这只是从1-1-1970秒数,所以从技术上来说,1376949600的数值可能仍然是前一天,取决于您的时区。

就我而言:

代码语言:javascript
复制
echo date("d-m-Y h:i", 1376949600);
// output: 19-08-2013 11:00
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18312382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档