Потому что, когда я создаю время в скриптах Python ... я хочу, чтобы оно соответствовало времени MYSQL.
Как мне сделать ОБЕИХ мирным временем?
Вы не упоминаете ОС, но для производных от RedHat это должно быть system-config-time
чтобы настроить часовой пояс. Для MySQL прочтите этот URL:
http://dev.mysql.com/doc/refman/5.1/en/mysql-tzinfo-to-sql.html
Подводя итог, мне пришлось загрузить часовые пояса из ОС:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
Добавьте следующую строку в `` / etc / my.cnf` в mysqld
раздел и перезапустите:
default-time-zone='Pacific/Honolulu'
А Боб твой дядя:
mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| Pacific/Honolulu | Pacific/Honolulu |
+--------------------+---------------------+
1 row in set (0.00 sec)
Я попробовал следующий тестовый сценарий:
import MySQLdb
import os
import re
import time
import datetime
from datetime import date, datetime, time
db = 'test'
dbhost = 'localhost'
dbport = 3306
dbuser = 'test'
dbpass = 'test'
start_time = datetime.today()
con = MySQLdb.connect(host=dbhost, port=dbport, user=dbuser, passwd=dbpass, db=db)
cursor = con.cursor()
sql = "SELECT current_time;"
cursor.execute(sql)
list = cursor.fetchall()
con.close()
print "------------------------------------------------------------------------------------"
print "Python time is: "
print start_time
print
print "MYSQL time is:"
for result in list:
print result[0]
print "--
-------------------------------------------------- -------------------------------- "
какой вывод:
------------------------------------------------------------------------------------
Python time is:
2010-03-30 22:29:19.358184
MYSQL time is:
22:29:19
------------------------------------------------------------------------------------
У вас есть таблица часовых поясов:
mysql> use mysql;
mysql> select count(*) from time_zone;
+----------+
| count(*) |
+----------+
| 1678 |
+----------+
1 row in set (0.00 sec)
На своих серверах я оставляю time_zone
установите "СИСТЕМА", как описано здесь:
http://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html
Глобальная системная переменная time_zone указывает часовой пояс, в котором в данный момент работает сервер. Начальным значением для time_zone является «SYSTEM», что указывает на то, что часовой пояс сервера совпадает с часовым поясом системы.