Files
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

35 lines
1.3 KiB
Python

import sqlite3
conn = sqlite3.connect('cms.db')
c = conn.cursor()
# 查更新前时间范围
c.execute('SELECT MIN(created_at), MAX(created_at), COUNT(*) FROM news_posts WHERE id >= 2')
row = c.fetchone()
print(f'更新前时间范围: {row[0]} ~ {row[1]},共 {row[2]} 篇')
# 一次性将所有采集文章的 created_at 和 updated_at 加2年
# 使用 SQLite 的 datetime 函数,一条语句全部搞定,不存在顺序问题
c.execute("UPDATE news_posts SET created_at = datetime(created_at, '+2 years'), updated_at = datetime(updated_at, '+2 years') WHERE id >= 2")
print(f'已更新 {c.rowcount} 条记录')
conn.commit()
# 验证更新后的范围
c.execute('SELECT MIN(created_at), MAX(created_at) FROM news_posts WHERE id >= 2')
row = c.fetchone()
print(f'更新后时间范围: {row[0]} ~ {row[1]}')
# 抽样几条查看
c.execute('SELECT id, title, created_at FROM news_posts WHERE id >= 2 ORDER BY created_at DESC LIMIT 5')
print('\n最新5篇:')
for r in c.fetchall():
print(f' id={r[0]} created_at={r[2]} title={r[1][:20]}')
c.execute('SELECT id, title, created_at FROM news_posts WHERE id >= 2 ORDER BY created_at ASC LIMIT 5')
print('\n最早5篇:')
for r in c.fetchall():
print(f' id={r[0]} created_at={r[2]} title={r[1][:20]}')
conn.close()
print('\n完成!')