首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么CAST()函数返回错误的日期?

问为什么CAST()函数返回错误的日期?
EN

Stack Overflow用户
提问于 2016-05-16 10:04:50
回答 4查看 1.9K关注 0票数 10

我正在尝试从时间戳字段中获取日期部分。我使用了这个SQL查询:

代码语言:javascript
复制
select timestamp, CAST(timestamp as date) as date from messages

我得到了以下结果:

代码语言:javascript
复制
--------------------------------------------
|        timestamp        |      date      |
--------------------------------------------
|   2016-05-15 10:22:54   |   2016-05-16   |
--------------------------------------------

如上所述,生成的日期字段返回错误的日期2016-05-16,而原始日期是2016-05-15。

我们如何解决这个问题呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-16 10:08:58

使用日期不强制转换,因为不是强制转换而是格式。

代码语言:javascript
复制
select timestamp, date(timestamp) as my_date from messages
票数 5
EN

Stack Overflow用户

发布于 2016-05-16 10:31:08

那不是问题!它只设置了错误的time_zone。见样品

get time_zone

代码语言:javascript
复制
SHOW GLOBAL VARIABLES LIKE 'time_zone'; -- systemwide setting
SHOW VARIABLES LIKE 'time_zone'; -- session setting

样本

代码语言:javascript
复制
MariaDB [mysql]> select t, CAST(t as date) FROM groupme LIMIT 1;
+---------------------+-----------------+
| t                   | CAST(t as date) |
+---------------------+-----------------+
| 2016-05-15 20:22:54 | 2016-05-15      |
+---------------------+-----------------+
1 row in set (0.00 sec)

MariaDB [mysql]> SET  time_zone ='-12:00';
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> select t, CAST(t as date) FROM groupme LIMIT 1;
+---------------------+-----------------+
| t                   | CAST(t as date) |
+---------------------+-----------------+
| 2016-05-14 20:22:54 | 2016-05-14      |
+---------------------+-----------------+
1 row in set (0.00 sec)

MariaDB [mysql]>
票数 7
EN

Stack Overflow用户

发布于 2016-05-16 10:14:45

我建议您使用DATE_FORMAT函数,而不是强制转换,因为您正在格式化日期,如

代码语言:javascript
复制
SELECT `timestamp`, DATE_FORMAT(`timestamp`, '%Y-%m-%d) as my_date from messages

还请注意,CAST函数和DATE函数内部都调用Item_date_typecast函数,因此它们之间没有这种区别。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37251313

复制
相关文章

相似问题

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