我想將整數格式的日期遷移到DATETIME。以整數格式遷移mysql日期
我在我的舊數據庫日期格式如下:
olddb.table.date = 20131114(INT) olddb.table.time = 900(INT)(上午9點,24小時時鐘)
新的數據庫:
newdb.table.datetime =二○一三年十一月一十四日9:00:00(DATETIME)
我怎麼會遷移這跟純粹的SQL?
我想將整數格式的日期遷移到DATETIME。以整數格式遷移mysql日期
我在我的舊數據庫日期格式如下:
olddb.table.date = 20131114(INT) olddb.table.time = 900(INT)(上午9點,24小時時鐘)
新的數據庫:
newdb.table.datetime =二○一三年十一月一十四日9:00:00(DATETIME)
我怎麼會遷移這跟純粹的SQL?
您可以STR_TO_DATE
您的日期部分轉換(MySQL documentation):
STR_TO_DATE(olddb.table.date, "%Y%m%d")
而對於一部分時間,你可以使用相同的功能:
STR_TO_DATE(olddb.table.time, "%h%i")
然後,您可以連接日期和並將函數應用於級聯結果:
STR_TO_DATE(concatenated_value, "%Y%m%d%h%i")
凡concatenated_value
是建立與:
CONCAT(olddb.table.date, olddb.table.time)
試試這個:
cast(
concat(
table.date div 10000, '-',
lpad((table.date mod 10000) div 100, 2, '0'), '-',
lpad(table.date mod 100, 2, '0'), ' ',
table.time div 100, ':',
lpad(table.time mod 100, 2, '0'))
as datetime)
這裏有一個工作示例:
這似乎工作非常好!謝謝。 –
這太複雜了,看到我的答案是更清潔,更簡單的解決方案。 –
你需要做整數運算的一點點(使用整數除法和模)來提取所有的字段,然後使用它們來創建datetime – acfrancis
@acfrancis你能提供一個例子嗎? –
你能給我們提供更多關於你的時間部分的例子嗎?如何存儲23h? 10點30分?你存儲秒? – Elorfin