Ответ 1
Попробуйте использовать его как DATE
SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED
Я пытаюсь получить часть даты поля datetime. Я знаю, что могу получить его с помощью date_format, но это возвращает строку или поле "varchar". Как я могу преобразовать результат на сегодняшний день, а не как varchar?
Это мой запрос, возвращающий varchar:
(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date
Я попробовал несколько комбинаций из этого вопроса, но не смог заставить его работать:
mysql query - формат даты на выходе?
Любая помощь приветствуется.
Попробуйте использовать его как DATE
SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED
Используйте функцию DATE:
SELECT DATE(orders.date_purchased) AS date
Решение Cybernate или OMG Ponies будет работать. Основная проблема заключается в том, что функция DATE_FORMAT() возвращает строку, а не дату. Когда вы написали
(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date
Я думаю, вы, по сути, просили MySQL попытаться форматировать значения в "date_purchased" в соответствии с этой строкой формата, и вместо вызова этого столбца "date_purchased" назовите его "Дата". Но эта колонка больше не будет содержать дату, она будет содержать строку. (Поскольку Date_Format() возвращает строку, а не дату.)
Я не думаю, что вы хотели, но что вы делали.
Не путайте, как выглядит значение со значением.
синтаксис 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
Я вижу много типов использования, но я считаю этот макет более полезным в качестве справочного инструмента:
SELECT DATE_FORMAT('2004-01-20' ,'%Y-%m-01');