[英]Calculate date of birth SQL DB2 and indicate bad data
我正在尝试计算学生入学时的年龄。 我已经尝试过此查询,但是在某些情况下,我的录取日期早于其出生日期(错误数据)。
例如:
date of birth is 2016-10-22-00.00.00.000000
admission date is 2016-09-09-14.51.00.000000
我得到0,但是我应该得到带有负数(-)的东西,因此我可以看到这是错误的数据。 谢谢
SELECT *
FROM (SELECT student_id,
Timestampdiff(256, Char(Timestamp(admission_date) -
Timestamp(date_of_birth)))
AS Admission_DOB
FROM person) AS a
WHERE admission_dob <= '10'
您应该将其作为单独的问题解决。 一个用于计算年龄,另一个用于查找不良数据。
因此,发现不良数据应该更简单:
SELECT *, 'good data', age(start, end) as age
FROM person
WHERE admission_date > date_of_birth
UNION ALL
SELECT *, 'bad data', null as age -- or age(end, start)
FROM person
WHERE admission_date < date_of_birth
SELECT student_id,
CASE admission_date > date_of_birth THEN
Timestampdiff(256, Char(Timestamp(admission_date)-Timestamp(date_of_birth)))
ELSE
Timestampdiff(256, Char(Timestamp(date_of_birth)-Timestamp(admission_date)))
AS Admission_DOB
FROM person
SELECT *
FROM (SELECT student_id,
CASE WHEN ar.DT_ACCESS_RCVD < p.DT_BRTH
THEN '-9'
ELSE Timestampdiff(256, Char(Timestamp(admission_date) -
Timestamp(date_of_birth)))
END AS Admission_DOB
FROM person) AS a
WHERE admission_dob <= '10'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.