sqlite convert'dd.MM.yyyy'forged String to date

问题描述:

我在我的android上有一个sqlite数据库,它带有一个datetime列,它包含格式为dd.MM.yyyy的日期。 这不是我的数据库,我无法更改Dateformat。 我想用字符串来比较数据库中的日期,该字符串代表了secon日期,但我尝试的所有内容均失败。 如何将此列转换为有效的可比较日期? date(),dattime()sdfttime()一切都返回NULL。sqlite convert'dd.MM.yyyy'forged String to date

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

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); 
Date d = sdf.parse("21.03.1997"); 
+0

我必须这样做,像SQL代码:AN D日期时间(d.objectstop) 2red13 2010-10-19 13:18:11

+0

和'strftime()'也不起作用? – 2010-10-19 13:34:52

+0

没有strftime需要yyyy-MM-dd格式的输入值?如果我尝试它,我也收到零 – 2red13 2010-10-19 15:39:14

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

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

你也可以根据this answer将其转换为where子句。

我搜索的谷歌“sqlite3的日期DDMMYYYY”和这个职位是最好的解决方案(与只为我工作在底部列出的职位当中的一个):

问题: 一个SQLite表中包含的日期格式DD/MM/YYYY和需要转换到SQLite的本机格式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?