首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -时间戳(8)替代方案?

MySQL -时间戳(8)替代方案?
EN

Stack Overflow用户
提问于 2012-12-26 13:57:14
回答 3查看 2.1K关注 0票数 0

几年前,我尝试使用较早版本的MySQL运行此表来创建此表,结果运行良好。在较新版本的MySQL中,似乎timestamp(8)现在出现了问题。

代码语言:javascript
复制
CREATE TABLE top_hits (
  sid int(11),
  ip varchar(20),
  cdate timestamp(8)
)

我可以使用什么来替代第4行的时间戳(8)?YYYYMMDD

代码语言:javascript
复制
cdate timestamp(8)

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-26 15:45:34

字段定义中的(8)部件不会对以下内容产生任何影响:

  • 列的大小(以字节为单位)
  • 存储在其中的值的范围(1970到partway 2038)
  • 是否可以在其中存储小时、分钟和秒

(8)部分指定显示大小。执行SELECT时,MySQL将从时间戳as described here返回日期的第一个XYZ部分。

因此,只需删除create table查询中的显示部分。这将创建一个timestamp列。您可以使用MySQL函数或在PHP中格式化时间戳(例如,砍掉时间部分等)。

或者使用根本不存储时间部分的DATE数据类型。

票数 3
EN

Stack Overflow用户

发布于 2012-12-26 15:29:49

您需要DATE类型,它存储年、月和日。

如果您需要格式化输出(YYYYMMDD),请使用DATE_FORMAT函数。

票数 3
EN

Stack Overflow用户

发布于 2012-12-26 14:08:48

的语法

代码语言:javascript
复制
timestamp(N)

在mysql 5中已被弃用

您可以选择您选择的日期

代码语言:javascript
复制
SELECT date(ts)+0 from t;

DATETIME数据类型占用8个字节的存储时间戳占用4个字节,date time占用更大范围的日期

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

https://stackoverflow.com/questions/14036523

复制
相关文章

相似问题

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