Подтвердить что ты не робот

Запрос для конвертирования с даты и времени mysql

Я пытаюсь получить часть даты поля datetime. Я знаю, что могу получить его с помощью date_format, но это возвращает строку или поле "varchar". Как я могу преобразовать результат на сегодняшний день, а не как varchar?

Это мой запрос, возвращающий varchar:

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date  

Я попробовал несколько комбинаций из этого вопроса, но не смог заставить его работать:

mysql query - формат даты на выходе?

Любая помощь приветствуется.

4b9b3361

Ответ 1

Попробуйте использовать его как DATE

SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED

Ответ 2

Используйте функцию DATE:

SELECT DATE(orders.date_purchased) AS date

Ответ 3

Решение Cybernate или OMG Ponies будет работать. Основная проблема заключается в том, что функция DATE_FORMAT() возвращает строку, а не дату. Когда вы написали

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date 

Я думаю, вы, по сути, просили MySQL попытаться форматировать значения в "date_purchased" в соответствии с этой строкой формата, и вместо вызова этого столбца "date_purchased" назовите его "Дата". Но эта колонка больше не будет содержать дату, она будет содержать строку. (Поскольку Date_Format() возвращает строку, а не дату.)

Я не думаю, что вы хотели, но что вы делали.

Не путайте, как выглядит значение со значением.

Ответ 4

синтаксис date_format:

SELECT date_format(date_born, '%m/%d/%Y' ) as my_date FROM date_tbl

    '%W %D %M %Y %T'    -> Wednesday 5th May 2004 23:56:25
    '%a %b %e %Y %H:%i' -> Wed May 5 2004 23:56
    '%m/%d/%Y %T'       -> 05/05/2004 23:56:25
    '%d/%m/%Y'          -> 05/05/2004
    '%m-%d-%y'          -> 04-08-13

Ответ 5

Я вижу много типов использования, но я считаю этот макет более полезным в качестве справочного инструмента:

SELECT DATE_FORMAT('2004-01-20' ,'%Y-%m-01');

введите описание изображения здесь