簡體   English   中英

SQL:如何使用UNIX_TIMESTAMP()將將來的日期轉換為時間戳?

[英]SQL: How to convert future date to timestamp with UNIX_TIMESTAMP()?

我想將DATETIME從一列轉換為UNIX TIMESTAMP。 但事實是這些日期在遙遠的將來,例如2066-09-01 ...您可以嘗試以下簡單的查詢:

SELECT UNIX_TIMESTAMP( '2016-09-03 09:00:00' )返回1472886000->良好

SELECT UNIX_TIMESTAMP( '2036-09-03 09:00:00' )返回2104038000->良好

SELECT UNIX_TIMESTAMP( '2066-09-03 09:00:00' )返回0->錯誤! 為什么??

任何想法? 任何解決方法?

Unixtimestamp.com

2038年1月19日會發生什么?

在這一天,由於32位溢出,Unix時間戳將停止工作。 在此之前,數百萬應用程序將需要采用新的時間戳約定,或遷移到64位系統,這將使時間戳花費更多的時間。

聽起來您的rdbms遭受了Y2038問題的困擾: https ://en.m.wikipedia.org/wiki/Year_2038_problem

這是MySQL嗎? 他們有一個關於此的錯誤: https : //dev.mysql.com/worklog/task/?id=1872

建議盡可能在SQL外部處理此問題。 PHP的strtotime()和其他語言中的類似功能可以與MySQL的ISO日期格式一起很好地使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM