Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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
用于转换某些列中的日期时间格式的SQL语句_Sql_Sqlite - Fatal编程技术网

用于转换某些列中的日期时间格式的SQL语句

用于转换某些列中的日期时间格式的SQL语句,sql,sqlite,Sql,Sqlite,我有一个SQLite数据库,其中一些列是格式为1/2/2000 3:45:56 am的日期时间字符串 是否有SQL语句可以将这些值转换为类似ISO-8601格式的字符串(2000-01-02 03:45:56) (一种可能的非SQL方法是将数据库导出为CSV文件,并使用Python及其CSV和datetime模块来解析列。)转换另一种方法很简单:可以使用。但这要求日期以ISO 8601格式(或Julian或Unix日期)开始 您可以在SQL中通过字符串操作来实现这一点,但这将非常复杂。最简单的方

我有一个SQLite数据库,其中一些列是格式为1/2/2000 3:45:56 am的日期时间字符串

是否有SQL语句可以将这些值转换为类似ISO-8601格式的字符串(2000-01-02 03:45:56)


(一种可能的非SQL方法是将数据库导出为CSV文件,并使用Python及其CSV和datetime模块来解析列。)

转换另一种方法很简单:可以使用。但这要求日期以ISO 8601格式(或Julian或Unix日期)开始

您可以在SQL中通过字符串操作来实现这一点,但这将非常复杂。最简单的方法是创建一个用户定义的函数

def fix_timestamp(timestamp):
    return datetime.datetime.strptime(timestamp, '%m/%d/%Y %I:%M:%S %p') \
           .strftime('%Y-%m-%d %H:%M:%S')

db = sqlite3.connect('...')
db.create_function('FixTimestamp', 1, fix_timestamp)
然后您可以执行
更新表格集column=fixtimstamp(TheColumn)