1

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

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

问候尼基尔

4

2 回答 2

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

于 2012-09-09T08:52:50.207 回答
0

试试这个声明 @dob varchar(200) set @dob = 'May,2,1986' select convert(datetime, @dob)

如果这不起作用,您将需要对年月日进行子串化,然后将它们一起分配给一个变量并减去当前日期(getdate())以获得您的年龄。

于 2012-09-09T04:54:55.010 回答