База данных MySql исключает AM, PM, из datetime, timestamp, time, PHP, SQL

У меня есть три типа данных в моей базе данных. Datetime, временная метка и время. Я получаю время, используя функцию даты, и попытался вставить его в базу данных под всеми тремя столбцами, но все три столбца отклонили AM, PM часть функции даты. Я не понимаю, почему. Мне нужно, чтобы AM, PM часть функции даты также была вставлена, поэтому я могу сортировать данные в своей базе данных более эффективно по времени. Есть ли другой столбец, который может хранить AM, PM часть даты, или есть обходной путь? Благодарю.

$time = date('h:i:s A'); //insert $time into all three columns into the database 

Обходным путем является использование hours качестве 24-часовых часов. Чтобы представить '3:45:56 PM ' , вставьте в столбец базы данных строковое значение '15:45:56' .

В противном случае вы можете использовать функцию STR_TO_DATE для преобразования строки в действительное значение TIME .

  INSERT INTO mytable (mycol) VALUES (STR_TO_DATE('3:45:56 PM','%h:%i:%s %p')) 

Чтобы получить значение TIME из столбца базы данных, отформатировано как 12-часовое время с AM / PM.

 SELECT DATE_FORMAT(mytimecol,'%h:%i:%s %p') AS mytimestr FROM ... 

Рекомендации:

STR_TO_DATE https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

DATE_FORMAT https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

Измените тип данных столбца как Varchar (20) и вставьте $ time = date ('h: i: s A'); в базу данных.

Получить из БД: –

при извлечении этого столбца из базы данных u можно использовать дату («h: i: s A», strtotime ($ fetched_datetime_from_db)).

Наслаждаться!!