php date () против mysql MONTH () - PullRequest
2 голосов
/ 02 июня 2010

у меня есть это значение метки времени Unix: 1275364800 (1 июня 2010 г.).

При печати этого значения с php: echo date('m',1275364800) он возвращает 6 (это нормально)

Но когда я выбираю поле из базы данных: select MONTH(FROM_UNIXTIME(1275364800)) AS month возвращает 5

Почему?

Кстати, если я выполню этот запрос выберите FROM_UNIXTIME (1275364800) AS q я получу 2010-05-31 23: 00: 00

Ответы [ 2 ]

1 голос
/ 02 июня 2010

Чтобы установить локали в MySql, выполните следующие действия.

Сначала проверьте, какой у вас местный:

mysql> SELECT @@lc_time_names;
+-----------------+
| @@lc_time_names |
+-----------------+
| en_US           |
+-----------------+

Чтобы убедиться в правильности его использования, Если это не так, измените ваш язык apache / php.

Чтобы изменить язык в MySql

mysql> SET lc_time_names = 'en_UK';    
Query OK, 0 rows affected (0.00 sec)

en_UK - это то, что вы хотите изменить на!

mysql> SELECT @@lc_time_names;
+-----------------+
| @@lc_time_names |
+-----------------+
| en_UK           |
+-----------------+ 

Надеюсь, это поможет вам.

0 голосов
/ 02 июня 2010

Потому что 1275364800 это 2010-05-31 не 1st june 2010 в локали mysql. Они запускаются на разных машинах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...