【问题标题】:Date format :from varchar to integer日期格式:从 varchar 到 integer
【发布时间】:2011-06-09 00:06:06
【问题描述】:

我的日期格式为“2011 年 1 月”,但如果我在“2011 年 1 月”和“2011 年 3 月”之间使用,则会给出错误的月份 所以我想将 varchar 转换为数字格式,以便我可以在 mysql 中的查询之间使用 提前致谢

【问题讨论】:

    标签: mysql sql phpmyadmin


    【解决方案1】:

    你应该将varchar列转换为日期列,这样更万无一失
    (varchar容易出错)

    使用find_in_set 进行映射

    select find_in_set('jan', 'jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec');
    

    所以

    select 
    find_in_set(
      substring_index(col, ' ', 1),
      'jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec'
    )...
    

    【讨论】:

      【解决方案2】:

      在表格中添加一个真实的日期列:

      ALTER TABLE the_table 
       ADD COLUMN the_real_date_column DATE;
      

      使用STR_TO_DATE 将日期值插入该列:

      UPDATE the_table  
         SET the_real_date_column = STR_TO_DATE(the_bad_date_column, '%b %Y');
      

      STR_TO_DATE 将为每个未提供的值插入一个0——在这种情况下是日期的日期部分。因此,您可以像这样将日期增加到 1

      UPDATE the_table
         SET the_real_date_column = the_real_date_column + 1;
      

      然后就可以正常查询日期列了,用BETWEEN,好东西。
      如果看到旧列让您感到困扰,您可以这样删除它:

      ALTER TABLE the_table 
      DROP COLUMN the_bad_date_column;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-18
        • 2016-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-13
        相关资源
        最近更新 更多