2011-12-26 3 views
2

Я пытаюсь вычислить возраст с утверждением SQL нижеОшибка при вычислении возраста в MySQL?

round(datediff(now() - dateofbirth/365)) 

дает следующее сообщение об ошибке,

1582 - Неправильный подсчет параметров в вызове собственной функции 'DATEDIFF'

+0

какого типа DateOfBirth –

ответ

5

Задача:datediff ожидает два параметра, таких как DATEDIFF(expr1,expr2), по данному вопросу есть только на e, следовательно, ошибка.

Решение: вы должны использовать,

round(datediff(now() , (dateofbirth/365))) 
        ^

в datediff возвращается expression1 – expression2, так что вы не должны делать это самостоятельно :) также убедитесь, что параметры даты или даты и времени выражения

EDIT: Другая ошибка указал Леффлера @ Джонатан, разделение необходимо после вызова DATEDIFF.

round(datediff(now(),dateofbirth)/365) 
+0

Требуется ли разделение после звоните в DATEDIFF ? –

+1

выбрать круглый ((датированный (сейчас(), (дата рождения)))/365) от члена – user1040364

+0

@JonathanLeffler oopss! понял! : D: D: D – COD3BOY

1

Для просмотра Сегодня матчи, например, использовать этот

SELECT `match_id`, `match_date` FROM `matches` 
WHERE DATEDIFF (CURDATE(),`match_date`) =0 

Вчера матчи

SELECT `match_id`, `match_date` FROM `matches` 
WHERE DATEDIFF (CURDATE(),`match_date`) =1 

Завтра соответствует

SELECT `match_id`, `match_date` FROM `matches` 
WHERE DATEDIFF (CURDATE(),`match_date`) =0 
Смежные вопросы