Php MySQL日期存储为12小时,不含上午/下午
我刚刚意识到,在系统上线6个月后,一个insert查询有一个h而不是一个h,因此一堆输入日期被存储为12小时日期,没有AM/PM指示器。有没有相对简单的方法来解决这个问题?数据库由MySQL 5.1.56-log提供支持Php MySQL日期存储为12小时,不含上午/下午,php,mysql,Php,Mysql,我刚刚意识到,在系统上线6个月后,一个insert查询有一个h而不是一个h,因此一堆输入日期被存储为12小时日期,没有AM/PM指示器。有没有相对简单的方法来解决这个问题?数据库由MySQL 5.1.56-log提供支持 我是个白痴。我成功地编写了一个Python脚本,实现了我所需要的功能,因此,如果其他人遇到这个问题,这将解决它。万岁 import datetime #example data entries = [ ('2014-10-10 04:07:48', 1, 1136, '
我是个白痴。我成功地编写了一个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导出中特定的列,但可以很容易地适应其他模式。不,无法知道实际时间。好的,这是2次中的1次。所以开始抛硬币。如果您存储了数据,但没有存储非常相关的信息。。。那么。。。显然不是。我正试图编写一个Python脚本来处理MySQL导出。基本上,将每个日期时间与最后一个日期时间进行比较,如果少于,则增加12小时。看起来可以用了?你能把这些插入与apache访问日志或其他东西匹配吗?如果这些插入来自POST/blog/entry,那么您可以尝试将访问日志时间戳与mysql时间戳关联起来。长镜头和乏味,但要考虑的事情。这显然是一个非常具体的解决方案,在你的情况下,你有具体的规则,你可以依靠作出决定。这不太可能普遍适用。我认为,在类似的情况下,错误地将日期存储为12小时,此代码很容易适用于其他数据集。