代码之家  ›  专栏  ›  技术社区  ›  Mark

STR_TO_日期及其子字符串

  •  0
  • Mark  · 技术社区  · 6 年前

    嗨,我想合并一个字符串中的3个子字符串(年、月和日),并将整个连接作为日期格式,但我不知道我做错了什么。字符串的所有字符都是数字(11)。

    SELECT str_to_date('SELECT CONCAT(substring(String,1,2),
                                      substring(String,3,2),
                                      substring(String,5,2)) 
                        FROM table', '%y %m %d');
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Tim Biegeleisen    6 年前

    我们可以通过一个子字符串调用来实现这一点:

    SELECT
        STR_TO_DATE(LEFT(String, 6), '%y%m%d')
    FROM yourTable;
    

    注意:您应该避免将日期信息存储为纯文本。我通常的建议是把返回的数据 STR_TO_DATE

        2
  •  0
  •   Madhur Bhaiya    6 年前

    假设 String 是表中的列名。您不需要指定 SELECT .. FROM table Concat() 功能。可以直接在函数中使用列值。你的方法在语法上也是错误的。 FROM table SELECT .. 条款。

    现在,以指定的日期格式 '%y %m %d' ,之间有空格 , 毫米 尽职调查

    SELECT str_to_date(CONCAT(substring(String,1,2), ' ',
                              substring(String,3,2), ' ',
                              substring(String,5,2)
                             )
                       , '%y %m %d')
    FROM table
    

    SELECT str_to_date(CONCAT(substring(String,1,2),
                              substring(String,3,2),
                              substring(String,5,2)
                             )
                       , '%y%m%d')
    FROM table