代码之家  ›  专栏  ›  技术社区  ›  2red13

sqlite将“dd.MM.yyyy”格式的字符串转换为日期

  •  4
  • 2red13  · 技术社区  · 14 年前

    我的android上有一个sqlite数据库,其中有一个datetime列,包含格式为dd.MM.yyyy的日期。 这不是我的数据库,我无法更改日期格式。 如何将此列转换为有效的可比较日期? date(),dattime()sdfttime()everything返回空值。

    3 回复  |  直到 14 年前
        1
  •  7
  •   Community CDub    8 年前

    我在google上搜索了“sqlite3 date ddmmyyyy”,这篇文章是最好的解决方案(也是在下面列出的文章中唯一对我有效的一篇):

    问题: SQLite表包含格式为 DD/MM/YYYY YYYY-MM-DD

    问题示例:

    sqlite> select id, calendar_day from tbl1;
    id;calendar_day
    4248281;2011-06-19
    4248282;2011-06-19
    4248283;19/06/2011
    4248284;19/06/2011
    

    解决方案示例:

    sqlite> update tbl1 set calendar_day = substr(calendar_day, 7) || "-" || substr(calendar_day,4,2)  || "-" || substr(calendar_day, 1,2) where id>4248282;
    

    结果示例:

    sqlite> select id, calendar_day from tbl1;
    id;calendar_day
    4248281;2011-06-19
    4248282;2011-06-19
    4248283;2011-06-19
    4248284;2011-06-19
    

    谢谢大家!

    1. Sqlite convert string to date
    2. SOLite:Date formatter in SQLite
    3. How can I convert datetime to date format in SQLite?
    4. Sqlite convert string to date
    5. How to convert a DD-MM-YYYY date format string into a YYYY-MM-DD date format string or into a NSDate object in Objective-C?
        2
  •  1
  •   Sergey Glotov Nitesh Khosla    14 年前

    要在数据库(SQL)或程序代码中执行此操作吗?在Java中,您可以使用 SimpleDateFormat

    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
    Date d = sdf.parse("21.03.1997");
    
        3
  •  1
  •   Community CDub    8 年前

    尝试此查询将列更改为文本日期的正确格式(假定表名为 table 和列命名 date ):

    update table set date = substr(date, 7) || "-" || substr(date,4,2) 
      || "-" || substr(date, 1,2);
    

    this answer

    推荐文章