簡體   English   中英

phpmyadmin將日期int(11)導出為CSV dd / mm / yy格式

[英]phpmyadmin export of date int(11) to CSV dd/mm/yy format

我是SQl的新手,正嘗試通過phpmyadmin進行轉儲。

目前,數據以int(11)的形式存儲在我的數據庫中。

當我從phpmyadmin導出時,數據自然導出為數字,例如'1325336400',但我希望將其顯示為01/01/2012或類似格式。 有什么辦法可以做到嗎?

提前謝謝了

物權法

如果您以32位整數存儲“日期數據”(按您的說法),那么我猜您正在使用* nix時間戳值(自1970年1月1日UTC時間以來的秒數)。

(您知道這可能會在2038年的某個時候溢出,對吧? http://en.wikipedia.org/wiki/Year_2038_problem

正如您所發現的那樣,phpmyadmin在使用這些值時很難。

MySQL具有TIMESTAMP數據類型,該數據類型也使用* nix樣式的時間戳。 (它不會溢出; MySQL開發人員做了正確的事。)

您確實確實需要將日期數據轉換為TIMESTAMP數據類型。 否則,時間的浪費將永遠成為脖子上的巨大痛苦。 這是操作方法。

首先,以這種方式向表中添加一列,

ALTER TABLE mytable ADD COLUMN ts TIMESTAMP AFTER myinttimestamp

然后,使用已有的值填充新的ts列。

UPDATE TABLE mytable SET ts = FROM_UNIXTIME(myinttimestamp)

接下來,更改新列的定義,以使其不允許NULL值,並使用當前時間作為默認值:

ALTER TABLE mytable 
     CHANGE ts
            ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL

最后,如果您願意,可以擺脫帶有INT值的舊列。

ALTER TABLE mytable DROP COLUMN myinttimestamp

(您應該考慮在表的副本上嘗試所有這些;這樣做會發臭,導致錯誤並破壞您的數據)。

當您使用TIMESTAMP數據類型時,MySQL會盡力在內部以UTC(時區不敏感)時間存儲所有這些時間戳,並根據您的設置將它們在顯示時轉換為本地時間

 SET time_zone = 'Asia/Vladivostok' 

管他呢。 當您將它們放入數據庫時​​,它還會將它們從本地時間轉換為UTC時間。

這是一篇文章。

https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

暫無
暫無

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

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