我有一张包含格式(YYYYMMDD)生日的表格,例如'19951118'
找出用户是否满18岁的最有效方法是什么?
我在帖子中添加我的解决方案而不是评论: SELECT *来自DATEADD(YEAR,18,BirthDay)>的用户DATEADD(dd,DATEDIFF(dd,0,getdate()),0)
答案 0 :(得分:1)
如果您将出生日期存储为varchar,那么
WHERE DateDiff(month,CONVERT(datetime,'19951118',112),getdate())>=18*12
答案 1 :(得分:1)
假设你的dateofbirth是char(8),这将在一张大桌子上表现良好,因为列生日没有计算。
WHERE
REPLACE(CONVERT(CHAR(10), DATEADD(YEAR,-18,CURRENT_TIMESTAMP), 126), '-', '')
>= birthday