SQLite仅用SQL处理TZ格式日期文本:新增列、获取最早/最晚日期
SQLite 针对TEXT类型日期列的处理方案
假设你的表名为your_table(请替换为实际表名),以下是纯SQL实现的解决方案:
1. 创建新列并存储转换后的日期时间
SQLite支持直接用内置函数解析ISO8601格式的时间字符串,分两步执行:
- 第一步:添加用于存储转换后日期时间的新列
ALTER TABLE your_table ADD COLUMN DateTimeCol DATETIME; - 第二步:将
DateText列的内容转换后写入新列
注:SQLite的UPDATE your_table SET DateTimeCol = datetime(DateText);datetime()函数可直接解析YYYY-MM-DDTHH:MM:SSZ格式的字符串,转换后会存储为SQLite支持的日期时间格式。
2. 获取表中最早的日期
两种方式均可实现,结果一致:
- 直接基于原
DateText列(ISO8601字符串可直接按字典序排序):SELECT MIN(DateText) AS earliest_date FROM your_table; - 基于转换后的
DateTimeCol列:SELECT MIN(DateTimeCol) AS earliest_date FROM your_table;
3. 获取表中最新的日期
同样有两种可选方式:
- 直接基于原
DateText列:SELECT MAX(DateText) AS latest_date FROM your_table; - 基于转换后的
DateTimeCol列:SELECT MAX(DateTimeCol) AS latest_date FROM your_table;
内容的提问来源于stack exchange,提问作者Carrol
相关产品推荐
相关产品推荐

