簡體   English   中英

mysql使用select查詢中的列更新整個列

[英]mysql update entire column with column from select query

我在現有數據庫中分隔了“日期和時間”列,現在我想將這兩個列與UTC TimeZone合並在一個DateTime列中。 我通過以下查詢獲取具有日期時間的轉換時間的檢索列

(SELECT convert_tz(t1, @@session.time_zone, '+00:00') FROM (SELECT CONCAT(`cDate`, ' ', `cTime`) AS t1 FROM testTable2) AS t2)

現在,我想更新同一表中的列之一。

UPDATE `testtable2` SET cDateTime = (SELECT convert_tz(t1, @@session.time_zone, '+00:00') FROM (SELECT CONCAT(`cDate`, ' ', `cTime`) AS t1 FROM testTable2) AS t2)

這將無法正常工作,因為它預期會排成一行。 如何不使用任何過程調用或函數來執行此操作? 謝謝你的幫助!

我目前無法測試(我的本地MySQL安裝有問題),但是我看不出為什么您不能簡單地這樣做:

UPDATE testtable2 SET cDateTime = convert_tz(CONCAT(cDate, ' ', cTime), @@session.time_zone, '+00:00')

另外,如果希望該查詢在大量行上或非常頻繁地運行,那么將不進行字符串生成/串聯/解析,而是使用日期時間算法...

暫無
暫無

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

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