як перетворити рядок на сьогоднішній день в mysql?


149

У мене є stringстовпець, який виступає як dateі я хочу вибрати його як date.

Це можливо?

Мій формат даних вибірки буде; month/day/year->12/31/2011

Відповіді:


258

Як було сказано в MySQL Використовуючи стовпчик рядка з текстом дати як поле дати , ви можете це зробити

SELECT  STR_TO_DATE(yourdatefield, '%m/%d/%Y')
FROM    yourtable

Ви також можете обробляти ці рядки дати в WHEREпунктах. Наприклад

SELECT whatever
  FROM yourtable
 WHERE STR_TO_DATE(yourdatefield, '%m/%d/%Y') > CURDATE() - INTERVAL 7 DAY

Ви можете обробляти всі види макетів дати та часу таким чином. Будь ласка, зверніться до специфікаторів формату для DATE_FORMAT()функції, щоб побачити, що можна ввести у другий параметр STR_TO_DATE().


6
Я думаю, що це має бути ІНТЕРВАЛЬНИЙ 7 ДЕНЬ, а не ДНІ
Feras Odeh

1
У мене є стовпчик char типу "dd-mmm-yyyy". Як я запитую у формат "dd-mm-yyyy"?
МАКС

51
STR_TO_DATE('12/31/2011', '%m/%d/%Y')

Яка дата зберігається у форматі DD / MM / РРРР, як 31/11/1015?
Випул Хадія

2
@VipulHadiya змініть рядок формату дати на %d/%m/%Yтакий, щоб так подобається. STR_TO_DATE('31/11/1015', '%d/%m/%Y')Майте на увазі, вихід буде у YYYY-MM-DDформаті як DATE тип даних.
fyrye

1
відповіді, що стосуються лише коду, мають низьке значення в StackOverflow. Вдосконаліть цю правильну відповідь.
mickmackusa

11

http://dev.mysql.com/doc/refman/5.5/uk/date-and-time-functions.html
використовуйте вищевказану сторінку для посилання на додаткові функції в MySQL

SELECT  STR_TO_DATE(StringColumn, '%d-%b-%y')
FROM    table

скажімо, наприклад, використовуйте нижченаведений запит, щоб отримати вихід

SELECT STR_TO_DATE('23-feb-14', '%d-%b-%y') FROM table

Для формату String використовуйте нижченаведене посилання

http://dev.mysql.com/doc/refman/5.5/uk/date-and-time-functions.html#function_date-format


10

Ось ще два приклади.

Для виведення дня, місяця та року ви можете використовувати:

select STR_TO_DATE('14/02/2015', '%d/%m/%Y');

Що виробляє:

2015-02-14

Для виведення часу також можна використовувати:

select STR_TO_DATE('14/02/2017 23:38:12', '%d/%m/%Y %T');

Що виробляє:

14.02.2017 23:38:12

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.