格式化MySQL中的时间戳

时间:2014-07-19 14:43:06

标签: php mysql database

我想使用phpMyAdmin直接添加到我的数据库中,我希望id为当前时间,因此我使用TIMESTAMP。问题是,我得到的输出是2014-07-19 15:37:32,因为我希望它是一个像2147483647这样的字符串(我想这是一天和几秒钟的时间)所以我可以使用php在Web文档中对其进行格式化。

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

3 个答案:

答案 0 :(得分:1)

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

SELECT
    UNIX_TIMESTAMP(your_timestamp_column) as yourformat;

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

修改

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

执行此操作
INSERT INTO yourtable (id, ...) VALUES
(CAST(UNIX_TIMESTAMP() AS CHAR(10), ...);

但我更倾向于使用INTEGER类型代替字符串类型。

TIMESTAMP类型是MySQL时间戳,它与字符串不同,与unix时间戳不同。

答案 1 :(得分:0)

您需要格式化日期:

SELECT DATE_FORMAT( NOW( ) ,  '%d%m%Y' )

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

的时间
INSERT INTO tablename (id, ...) VALUES
(DATE_FORMAT( NOW( ) ,  '%d%m%Y' ) , ...);

答案 2 :(得分:0)

我不认为TIMESTAMP就是你的想法。您是否在data types上看到了MySQL文档?

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

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