我需要找到平均年龄,但我的出生日期以月、日、年(例如:-May,2,1986)格式存储在我的 sqlite 数据库中。
如何从 May,2,1986 转换为日期格式以查找年龄?
问候尼基尔
此解决方案仅考虑年份,而不是月份 + 日期(您可以添加到其中)。
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
。
试试这个声明 @dob varchar(200) set @dob = 'May,2,1986' select convert(datetime, @dob)
如果这不起作用,您将需要对年月日进行子串化,然后将它们一起分配给一个变量并减去当前日期(getdate())以获得您的年龄。