用于转换某些列中的日期时间格式的SQL语句
我有一个SQLite数据库,其中一些列是格式为1/2/2000 3:45:56 am的日期时间字符串 是否有SQL语句可以将这些值转换为类似ISO-8601格式的字符串(2000-01-02 03:45:56)用于转换某些列中的日期时间格式的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中通过字符串操作来实现这一点,但这将非常复杂。最简单的方
(一种可能的非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)