sqlite转换'dd.MM.yyyy'格式字符串到目前为止

时间:2010-10-19 13:05:09

标签: android sqlite

我的android上有一个sqlite数据库,有一个datetime列,其中包含一个格式为dd.MM.yyyy的日期。 这不是我的数据库,我不能改变Dateformat。 我想比较数据库中的日期和String,它表示一个secon日期,但我尝试的所有内容都失败了。 如何将此列转换为有效的可比较日期? date(),dattime()sdfttime()一切都返回NULL。

3 个答案:

答案 0 :(得分:7)

我在谷歌上搜索了“sqlite3 date 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?

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

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

您还可以根据this answer将其转换为where子句。