#mysql #sql #string
#mysql #sql #строка
Вопрос:
В таблице у меня есть сохраненный строковый столбец «ММ / ДД / ГГГГ ЧЧ: ММ: СС», и я ищу запрос для возврата только части «ММ / ДД / ГГГГ».
Есть идеи?
Комментарии:
1. @user693121 — Это MS Sql Server?
2. ДА. И оказывается, что это поле DATETIME, А НЕ строка
Ответ №1:
Если тип столбца — char
или varchar
, то
SELECT LEFT(colname, 10)
будет достаточно. Если это datetime
тип, то попробуйте
SELECT DATE_FORMAT(colname , "%d/%m/%Y")
Комментарии:
1. DATE_FORMAT’ не является распознанным именем встроенной функции 🙁
2.
DATE_FORMAT
действительно является функцией MySQL. Вы, должно быть, добавили дополнительную цитату или что-то в этом роде.3. DATE_FORMAT несовместим с Microsoft SQL 2005. Пытаюсь использовать вариант «ПРЕОБРАЗОВАТЬ (VARCHAR(10), столбец 101) В [ММ / ДД / ГГГГ]», но VARCHAR и CHAR также не распознаются.
Ответ №2:
На самом деле вы должны использовать поле MySQL DATETIME вместо поля string. Это позволило бы вам применять функции даты и времени, которые чрезвычайно помогают при работе с временными данными.
В вашем случае, поскольку ваши данные имеют строковый тип, а не в формате MySQL Isodate (ГГГГ-ММ-ДД), вы можете работать только с использованием строковых функций, таких как SUBSTRING() и их специализаций (СЛЕВА, …).
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html Обзор функций даты и времени
http://dev.mysql.com/doc/refman/5.5/en/string-functions.html Строковые функции
Комментарии:
1. Оказывается, это поля DATETIME. Что бы я применил?
Ответ №3:
я думаю, вы можете использовать substring !!!
ВЫБЕРИТЕ ПОДСТРОКУ (TimeStamp, 7,10);