如何在sqlite中将字符串日期转换为日期格式

时间:2012-09-09 04:44:40

标签: date datetime sqlite

我需要找到平均年龄,但我的DOB以我的sqlite数据库中的月,日,年(例如:-May,2,1986)格式存储。

如何从5月,2,1986转换为日期格式以查找年龄?

此致 Nikil

2 个答案:

答案 0 :(得分:2)

此解决方案仅考虑年份,而不是月份+日期(您可以添加到该年份)。

SELECT
   DATE('now') -
   CAST(
      SUBSTR(birth_date,-4) || '-' ||
      CASE SUBSTR(birth_date,0,LENGTH(birth_date)-8)
         WHEN 'January' THEN 1
         WHEN 'February' THEN 2
         WHEN 'March' THEN 3
         WHEN 'April' THEN 4
         WHEN 'May' THEN 5
         WHEN 'June' THEN 6
         WHEN 'July' THEN 7
         WHEN 'August' THEN 8
         WHEN 'September' THEN 9
         WHEN 'October' THEN 10
         WHEN 'November' THEN 11
         WHEN 'December' THEN 12
      END || '-' ||
      SUBSTR(birth_date, 6,1)
   AS DATE)
FROM foo;

这将为您提供26.0

答案 1 :(得分:0)

试试这个 声明@dob varchar(200) 设置@dob ='May,2,1986' 选择转换(datetime,@ dob)

如果这不起作用,你需要将年月和日子串起来,然后将它们一起分配给一个变量,并用当前日期(getdate())减去你的年龄。