Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL from_unixtime setelah 2038-01-19?

Solusinya mungkin menggunakan DATE_ADD , tapi saya tidak yakin bagaimana kinerjanya:

SELECT DATE_ADD(FROM_UNIXTIME(0), INTERVAL 2147483647 SECOND); //2038-01-19 04:14:07
SELECT DATE_ADD(FROM_UNIXTIME(0), INTERVAL 2147483648 SECOND); //2038-01-19 04:14:08
...
SELECT DATE_ADD(FROM_UNIXTIME(0), INTERVAL 4147483647 SECOND); //2101-06-06 07:47:27

Jadi untuk saat ini, saya menggunakan

...
CASE 
  WHEN `javaTimeStampColumn` > 2147483647 THEN
    CONVERT_TZ(DATE_ADD(FROM_UNIXTIME(0), INTERVAL `javaTimeStampColumn`/1000 SECOND),'+00:00','+00:00')
  ELSE  
    CONVERT_TZ(FROM_UNIXTIME(`javaTimeStampColumn`/1000), '+00:00','+00:00')
END as ts
FROM table
...

yang seharusnya meminimalkan dampak pada kinerja jika ada.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql.ConnectorNET.Data vs MySql.Data

  2. Kembalikan struktur tabel dari file frm dan ibd

  3. Bagaimana cara mengubah semua string kosong menjadi NULL dalam sebuah tabel?

  4. Permintaan MySQL berdasarkan input pengguna

  5. Gabungkan bidang baris dengan ID yang sama di MySQL