我刚刚意识到,系统上线6个月后,插入查询有一个h
而不是H
,所以一堆入口日期被存储为12小时的日期而没有AM / PM指标。是否有一种相对简单的方法来解决这个问题?数据库由MySQL 5.1.56-log
提供支持。
我是个白痴。
答案 0 :(得分:0)
我设法编写了一个Python脚本,实现了我所需要的,所以如果有其他人遇到过这个问题,这将有助于解决它。 (万岁!)
import datetime
#example data
entries = [
('2014-10-10 04:07:48', 1, 1136, 'JH'),
('2015-04-13 08:31:33', 0, 3066, 'Mez'),
('2015-04-13 09:38:06', 0, 3067, 'VL'),
('2015-04-13 10:34:54', 1, 3068, 'J.A'),
('2015-04-14 02:43:08', 1, 3069, 'ACM'),
('2015-04-14 03:35:49', 0, 3070, 'ACM'),
('2015-04-14 08:30:39', 0, 3071, 'Ic'),
('2015-04-14 09:35:07', 1, 3072, 'DK'),
('2015-04-14 10:38:36', 0, 3073, 'ZG'),
('2015-04-14 11:36:09', 0, 3074, 'VL'),
('2015-04-14 12:46:23', 1, 3075, 'EB'),
('2015-04-14 01:44:18', 0, 3076, 'EB')]
last_date = datetime.datetime.now()
last_time = last_date.time()
after_noon = False
twelve_hours = datetime.timedelta(hours=12)
for entry in entries:
current_date = datetime.datetime.strptime(entry[0], '%Y-%m-%d %I:%M:%S')
if current_date.date() != last_date:
last_date = current_date.date()
after_noon = False
last_time = current_date.time()
else:
if after_noon:
current_date = current_date + twelve_hours
else:
if current_date.time() < last_time:
after_noon = True
current_date = current_date + twelve_hours
print "('" + str(current_date) + "', " + str(entry[1]) + ", " + str(entry[2]) + ", " + "'" + entry[3] + "'),"
这是我的MySQL导出中的列特有的,但可以很容易地适应其他模式。