Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL日期存储为12小时,不含上午/下午_Php_Mysql - Fatal编程技术网

Php MySQL日期存储为12小时,不含上午/下午

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, '

我刚刚意识到,在系统上线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, '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小时,此代码很容易适用于其他数据集。