首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >格式化MySQL中的时间戳

格式化MySQL中的时间戳
EN

Stack Overflow用户
提问于 2014-07-19 22:43:06
回答 3查看 77关注 0票数 0

我想使用phpMyAdmin直接添加到我的数据库中,并且我希望id是当前时间,所以我使用TIMESTAMP。问题是,我得到的输出是2014-07-19 15:37:32,而我希望它是一个类似2147483647的字符串(我认为这是以秒为单位的日期和时间),这样我就可以使用php在web文档中对其进行格式化。

如何让它放置数字字符串而不是日期格式?

EN

回答 3

Stack Overflow用户

发布于 2014-07-19 22:49:23

要获取秒数,您可以轻松使用UNIX_TIMESTAMP(https://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_unix-timestamp):

代码语言:javascript
运行
复制
SELECT
    UNIX_TIMESTAMP(your_timestamp_column) as yourformat;

我不认为使用它来标识行是一个好主意,因为在同一秒内很容易有多个插入操作。你最好使用一个简单的自动增量列。

编辑

如果您的列应该是CHAR列,则可以使用

代码语言:javascript
运行
复制
INSERT INTO yourtable (id, ...) VALUES
(CAST(UNIX_TIMESTAMP() AS CHAR(10), ...);

但我更喜欢对列使用整数类型,而不是字符串类型。

timestamp类型是一个unix时间戳,它不同于字符串,也不同于MySQL时间戳。

票数 1
EN

Stack Overflow用户

发布于 2014-07-19 23:42:21

您需要格式化日期:

代码语言:javascript
运行
复制
SELECT DATE_FORMAT( NOW( ) ,  '%d%m%Y' )

使用DATE_FORMAT方法获取19072014日期-月-年的时间

代码语言:javascript
运行
复制
INSERT INTO tablename (id, ...) VALUES
(DATE_FORMAT( NOW( ) ,  '%d%m%Y' ) , ...);
票数 0
EN

Stack Overflow用户

发布于 2014-07-20 01:36:26

我不认为时间戳是你想的那样。您看过data types上的MySQL文档吗

我认为你应该使用DATETIME。如果您设置了使用从纪元开始的秒数系统(建议将其存储为整数),则VMai有一个很好的方法,但是由于您在数据库中存储日期和时间,您应该利用设计用于存储日期和时间的数据类型:-)如果您将其存储为DATETIME,您将获得一些额外的好处(人类可读,能够应用时区和夏令时/标准时间转换,等等),并且您可以在选择中将其转换为UNIX_TYPESTAMP,这样您的应用程序就不需要更改。

我还发现http://www.developwebsites.net/choose-optimal-mysql-data-type/非常有用。

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

https://stackoverflow.com/questions/24841558

复制
相关文章

相似问题

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