mysql 英文月份 mysql STR TO

2021-10-17 20:07:04 字數 3112 閱讀 2015

在我的

mysql資料庫表中,我需要使用列shour(varchar)的值更新列sdate(date).

我試過這個sql查詢:

update ignore `dotable`

set `sdate` = str_to_date(`shour`, '%d-%m-%y')

where

`sdate` is null;

輸出是:

| shour | sdate |

| 01-ago-18 | null |

| 01-apr-18 | 2018-04-01 |

| 01-feb-18 | 2018-02-01 |

| 01-gen-18 | null |

| 01-giu-18 | null |

| 01-mar-18 | 2018-03-01 |

| 01-nov-18 | 2018-11-01 |

| 01-ott-18 | null |

| 01-set-18 | null |

| 02-ago-18 | null |

10 rows in set

問題是當行shour不包含英文的月份名稱(en_us)時.

例如行:

| shour | sdate |

| 01-ago-18 | null |

不更新,因為月份名稱(前三個字母)是前(it_it)而不是八(en_us).

而是行:

| shour | sdate |

| 01-apr-18 | 2018-04-01 |

更新是因為月份名稱-apr-(前三個字母)與義大利語和英語一致.

我嘗試過這樣的成功:

set lc_time_names = 'it_it';

怎麼解決這個?

最佳答案 在mysql中嘗試這個.

update `dotable`

set `sdate` = null;

update ignore `dotable`

set `sdate` = str_to_date(`shour`, '%d-%m-%y')

where

`sdate` is null;

update `dotable` jjj

join (

select

str_to_date(`smonth`, '%d-%m-%y') as `xdate`

from

select

case

when substring_index(

substring_index(`shour`, '-' ,- 2),

) in ('ago') then

concat(

substring_index(`shour`, '-', 1),

'aug',

substring_index(`shour`, '-' ,- 1)

when substring_index(

substring_index(`shour`, '-' ,- 2),

) in ('dic') then

concat(

substring_index(`shour`, '-', 1),

'dec',

substring_index(`shour`, '-' ,- 1)

when substring_index(

substring_index(`shour`, '-' ,- 2),

) in ('gen') then

concat(

substring_index(`shour`, '-', 1),

'jan',

substring_index(`shour`, '-' ,- 1)

when substring_index(

substring_index(`shour`, '-' ,- 2),

) in ('giu') then

concat(

substring_index(`shour`, '-', 1),

'jun',

substring_index(`shour`, '-' ,- 1)

when substring_index(

substring_index(`shour`, '-' ,- 2),

) in ('ott') then

concat(

substring_index(`shour`, '-', 1),

'oct',

substring_index(`shour`, '-' ,- 1)

when substring_index(

substring_index(`shour`, '-' ,- 2),

) in ('set') then

concat(

substring_index(`shour`, '-', 1),

'sep',

substring_index(`shour`, '-' ,- 1)

when substring_index(

substring_index(`shour`, '-' ,- 2),

) in ('lug') then

concat(

substring_index(`shour`, '-', 1),

'jul',

substring_index(`shour`, '-' ,- 1)

when substring_index(

substring_index(`shour`, '-' ,- 2),

) in ('mag') then

concat(

substring_index(`shour`, '-', 1),

'may',

substring_index(`shour`, '-' ,- 1)

end as `smonth`

from

`dotable`

where

`sdate` is null

) as ttt

) as kkk

set jjj.`sdate` = kkk.`xdate`

where

jjj.`sdate` is null;

英文月份和數字月份轉換

public static listmonth list arrays.aslist jan feb mar apr may jun jul aug sep oct nov dec public static string changenumbertochar string releaseversi...

C語言 輸出月份的英文

要成為絕世高手,並非一朝一夕,除非是天生武學奇才,但是這種人 萬中無一 包租婆 這道理放在c語言學習上也一併受用。在程式設計方面有著天賦異稟的人畢竟是少數,我們大多數人想要從c語言小白高階到高手,需要經歷的是日積月累的學習。那麼如何學習呢?當然是每天都練習一道c語言題目!c語言編寫乙個程式,輸入月份...

C語言 輸出月份英文名

本題要求實現函式,可以返回乙個給定月份的英文名稱。函式介面定義 char getmonth int n 函式getmonth應返回儲存了n對應的月份英文名稱的字串頭指標。如果傳入的引數n不是乙個代表月份的數字,則返回空指標null。裁判測試程式樣例 include char getmonth int...