为什么我不能在 mysql / phpmyadmin 中存储时间戳?
Why I can't store a timestamp in mysql / phpmyadmin?
我在 phpMyAdmin 中创建了一个 table,它包含两个字段:start_time 和 text_modified。看起来像这样
所以 start_time 可能为空。
当我在 phpmyadmin 中填写数据时,我可以选择应该表示为这个时间戳的日期和时间:
这样做之后,我希望在此字段中存储时间戳值而不是日期时间。但是当我查询 SELECT start_time from table
时,我看到了这个:
所以我假设只是 php 我的管理员自动将所有日期显示为日期时间值而不是时间戳。但是现在当我查询时:SELECT FROM_UNIXTIME(start_time) FROM table
我得到的结果是:
相反,我想要这里的正常日期。这里出了什么问题?
您可以在时间戳中插入日期时间值,这些值在内部存储为整数(您可能知道自 1970 年 1 月 1 日以来的秒数)。当您 select 它们时,它们将显示为日期和时间。
到目前为止一切顺利。
当您有像 0000-00-00 00:00:00
这样的值时,您可能插入了 NULL
值或无效日期或超出整数值范围的日期。使用 FROM_UNIXTIME()
在这里没有意义,因为此函数根据整数值计算日期和时间值。 timestamp 列的这个整数值就像我说的只在内部使用。因此,您会得到有效日期的 NULL
值和无效日期的 1970-01-01
值,因为这些值可能被视为 0
和 0
秒,因为 1970-01-01 00:00:00
是 1970-01-01 00:00:00
。
我在 phpMyAdmin 中创建了一个 table,它包含两个字段:start_time 和 text_modified。看起来像这样
所以 start_time 可能为空。 当我在 phpmyadmin 中填写数据时,我可以选择应该表示为这个时间戳的日期和时间:
这样做之后,我希望在此字段中存储时间戳值而不是日期时间。但是当我查询 SELECT start_time from table
时,我看到了这个:
所以我假设只是 php 我的管理员自动将所有日期显示为日期时间值而不是时间戳。但是现在当我查询时:SELECT FROM_UNIXTIME(start_time) FROM table
我得到的结果是:
相反,我想要这里的正常日期。这里出了什么问题?
您可以在时间戳中插入日期时间值,这些值在内部存储为整数(您可能知道自 1970 年 1 月 1 日以来的秒数)。当您 select 它们时,它们将显示为日期和时间。
到目前为止一切顺利。
当您有像 0000-00-00 00:00:00
这样的值时,您可能插入了 NULL
值或无效日期或超出整数值范围的日期。使用 FROM_UNIXTIME()
在这里没有意义,因为此函数根据整数值计算日期和时间值。 timestamp 列的这个整数值就像我说的只在内部使用。因此,您会得到有效日期的 NULL
值和无效日期的 1970-01-01
值,因为这些值可能被视为 0
和 0
秒,因为 1970-01-01 00:00:00
是 1970-01-01 00:00:00
。