Arhn - архитектура программирования

Получить возраст из даты рождения в MySQL

Я пытаюсь показать возраст участников на странице профиля. в файле php я только что добавил этот код, чтобы показать день рождения пользователей:

$data = $db->super_query( "SELECT dob FROM dle_users" );
$tpl->set("{bdate}", $data['dob']);

и на странице профиля у меня есть этот результат:

1364-07-09

Дата на персидском языке: гггг-мм-дд

теперь мне нужно показать возраст участников, я искал в Google и на этом сайте, я нашел несколько ответов и советов, но у меня это не сработает! я не знаю почему.

как я могу показать возраст? :(

12.10.2012

Ответы:


1

Вы можете использовать функцию MySQL TIMESTAMPDIFF():

SELECT TIMESTAMPDIFF(YEAR, dob, CURRENT_DATE) AS age FROM dle_users
12.10.2012

2

Взгляните на функции даты MySQL (если это то, что вы используете), они сделают для вас целый ряд преобразований.

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

Может быть DATEDIFF( NOW(), dob ) или еще что-то в этом роде, но это вернет разницу в днях или TIMESTAMPDIFF(MONTH, NOW(), dob ) в месяцах.

12.10.2012
  • спасибо, но мне слишком сложно выучить слишком много sql за 1 час: D, не могли бы вы сделать мне одолжение и помочь мне больше? 12.10.2012

  • 3

    Вы можете использовать

    SELECT DATEDIFF(dob, NOW()) AS difference from dle_users;
    

    Это даст вам разницу в дате, которую вы можете преобразовать в различные форматы с помощью PHP.

    date("m/d/y g:i (A)", $DB_Date_Field);
    

    Также вы можете напрямую использовать TIMESTAMPDIFF как:

    SELECT TIMESTAMPDIFF(YEAR, dob, CURDATE()) as difference from dle_users;
    

    Прочитайте http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timestampdiff

    http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_curdate

    http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

    12.10.2012

    4

    Просто для разнообразия:

    select year(now()) - year(dob) - if(dayofyear(now()) < dayofyear(dob), 1, 0) from dle_users
    
    12.10.2012
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..