Поле Mysql DATE выбрано в формате yyyy-MM-ddTHH:mm:ss-HH:mm

Я использую JqxCharts от JqWidgets.

Использование файла PHP для получения данных Json для графика.

В запросе Mysql я делаю что-то вроде этого:

SELECT fecha, Qty
FROM somedatabase

2016-05-01     5
2016-07-21     55
2016-08-16     33

Поле «fecha» имеет простой формат DATE. Но когда он отображается на графике, я всегда получаю неправильную дату (на 1 день меньше)

Очевидно, это должно что-то делать с преобразованием формата даты из javascript.

И мне нужно получить дату из MySql в формате "yyyy-MM-ddTHH:mm:ss-HH:mm"

Как я могу получить этот формат из моего фактического запроса?

ОБНОВЛЕНИЕ: РЕШЕНО.

Благодаря "tadman", чтобы помочь мне понять. Я искал, как выбрать Mysql ISO 8601, и нашел

Итак, теперь я только что обновил запрос до:

SELECT DATE_FORMAT(fecha, '%Y-%m-%dT%T-06:00'), Qty
FROM somedatabase

Кстати, если кто-то ищет это, "T-06:00" - это UTC для Мексики.


person Daniel Clarks    schedule 19.09.2016    source источник
comment
Это всего лишь формат ISO-8601. Внутренний формат MySQL также является его формой, но T опущен. Если вам по какой-то причине нужно переформатировать дату, делайте это в PHP, а не в своем запросе.   -  person tadman    schedule 19.09.2016
comment
это не то, что я искал, но это помогло мне понять это, спасибо   -  person Daniel Clarks    schedule 19.09.2016


Ответы (1)


Благодаря "tadman", чтобы помочь мне понять. Я искал, как выбрать Mysql ISO 8601, и нашел

Итак, теперь я только что обновил запрос до:

SELECT DATE_FORMAT(fecha, '%Y-%m-%dT%T-06:00'), Qty
FROM somedatabase

Кстати, если кто-то ищет это, "T-06:00" - это UTC для Мексики.

person Daniel Clarks    schedule 19.09.2016
comment
Предупреждаю, что сегодня это правильно, но 30 октября оно изменится на -06:00 с -05:00. Возможно, вы захотите проверить, каково смещение часового пояса для любой заданной даты, что усложняется тем фактом, что часовой пояс переключается после полуночи. - person tadman; 19.09.2016
comment
это правда, мне было интересно, что происходит в этом случае, потому что на самом деле это всегда зона -6, но поскольку у него есть летнее время, оно меняется, не уверен, что меняется, как вы говорите, если это так, то я нужен другой подход к этой проблеме с датами в Mysql и javascript - person Daniel Clarks; 19.09.2016
comment
В общих чертах даты не имеют часовых поясов, но время может. Как и все, что связано с датами, тщательно проверьте это, чтобы убедиться, что вы все сделали правильно, и обратите особое внимание на странные случаи, связанные с переходом на летнее время и високосными годами. - person tadman; 19.09.2016
comment
У них нет, и на самом деле поле должно быть только датой (гггг-мм-дд), а не временем или зоной, но эта странная вещь происходит при получении данных в Json для JqxCharts, я проверю это поведение , плюс близится часовая пересадка 30 окт, спасибо - person Daniel Clarks; 20.09.2016