我需要找到平均年龄,但我的DOB以我的sqlite数据库中的月,日,年(例如:-May,2,1986)格式存储。
如何从5月,2,1986转换为日期格式以查找年龄?
此致 Nikil
答案 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())减去你的年龄。