如何将字符串中的月份名称转换为短月份

pu82cl6c  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(310)

我正在尝试将csv文件加载到我的数据库中,需要调用一个函数将当前为dd-mmm-yyyy格式的日期字符串转换为yyyy/mm/dd格式。
我试过了,但没用:

SELECT STR_TO_DATE("10-Aug-2017", "%M %d %Y");
lc8prwob

lc8prwob1#

道歉。。。我误解了功能。它现在起作用了:

SELECT STR_TO_DATE("12-Aug-2017", "%d-%b-%Y");

退货2017-08-12

46scxncf

46scxncf2#

对于mysql,可以使用str \u to \u date()转换日期中的字符串

select str_to_date('23-08-2018', 'd%-m%-%Y') 
    from dual

那么你就有了一个合适的日期值
您可以使用日期格式显示日期值

select date_format( my_col_date, '%Y/%m/%d')
   from dual 

   select date_format(str_to_date('23-08-2018', 'd%-m%-%Y'), '%Y/%m/%d')
   from dual

对你来说

select date_format(STR_TO_DATE("12-Aug-2017", "%d-%b-%Y"), '%Y/%m/%d')
   from dual

有关遮罩参数,请参见此https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-格式
假设insert表包含col1、col2、col3。。。。col4和col1 si列中的日期值对于加载填充,您应该将日期转换为

LOAD DATA INFILE '/path/to/your_file.csv'
    IGNORE INTO TABLE temp_test
      FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
      LINES TERMINATED BY '\r\n' #use '\n' for linux
      IGNORE 1 LINES
    (@var_col1, col2, col3, ......, coln)
    SET col1 = STR_TO_DATE(@var_col1,'%d-%m-%Y');

相关问题