当前位置: 首页 > news >正文

SQLite3学习笔记3:UTC和CST 时区偏差问题

1. 校准 Ubuntu 系统时间 / 时区

若系统时间本身和实际时间对不上,执行以下命令校准需同理校准时区 / 同步 NTP 时间):

# 1. 设置时区为上海(嵌入式设备常用时区)sudotimedatectl set-timezone Asia/Shanghai# 2. 安装时间同步工具(Ubuntu)sudoaptinstallntpdate -y# 3. 同步网络时间(嵌入式设备可对接NTP服务器,无网络则手动设置)sudontpdate pool.ntp.org# 验证时间是否正确date

2. 解决时间戳差 8 小时的问题

SQLite3 的CURRENT_TIMESTAMP默认生成的是UTC 时间(世界协调时间),而 Ubuntu 系统显示的是CST 时间(中国标准时间,UTC+8),所以数据库中记录的时间会比本地时间少 8 小时。

  • 数据库时间:2026-01-26 10:15:46(UTC)
  • 本地时间:2026-01-26 18:15:46(CST = UTC+8)
方案 1:查询时转换时区

核心逻辑:原始数据存 UTC(国际标准,便于跨时区设备溯源),查询时转换为 CST(UTC+8)。

// 原查询语句SELECT*FROMdevice_params;// 新查询语句(转换为CST时间)SELECTid,param_name,param_value,datetime(update_ts,'+8 hours')ASupdate_ts_cstFROMdevice_params;

结果如下:

// UTC1|temp|26.0|2026-01-2610:15:462|humidity|60.2|2026-01-2610:15:46// CST1|temp|26.0|2026-01-2618:15:462|humidity|60.2|2026-01-2618:15:46
方案 2:插入 / 更新时直接存 CST 时间

核心逻辑:插入 / 更新时显式指定时区偏移,让update_ts直接存储 CST 时间 —— 适合仅在国内使用、无需跨时区的嵌入式设备。

操作步骤(修改 INSERT/UPDATE 语句)
  1. 插入数据时直接存 CST
// 原插入语句(存UTC)INSERTINTOdevice_params(param_name,param_value)VALUES('temp',26.5),('humidity',61.0);// 新插入语句(存CST,显式+8小时)INSERTINTOdevice_params(param_name,param_value,update_ts)VALUES('temp',26.5,datetime(CURRENT_TIMESTAMP,'+8 hours')),('humidity',61.0,datetime(CURRENT_TIMESTAMP,'+8 hours'));

结果如下:

// UTC3|temp|26.5|2026-01-2611:03:554|humidity|61.0|2026-01-2611:03:55// CST5|temp|26.5|2026-01-2619:04:166|humidity|61.0|2026-01-2619:04:16
  1. 更新数据时同步存 CST
// 原更新语句(存UTC)UPDATEdevice_paramsSETparam_value=27.0,update_ts=CURRENT_TIMESTAMPWHEREparam_name='temp';// 新更新语句(存CST)UPDATEdevice_paramsSETparam_value=27.0,update_ts=datetime(CURRENT_TIMESTAMP,'+8 hours')WHEREparam_name='temp';

结果如下:

// UTC1|temp|27.0|2026-01-2611:14:133|temp|27.0|2026-01-2611:14:135|temp|27.0|2026-01-2611:14:13// CST1|temp|27.0|2026-01-2619:14:183|temp|27.0|2026-01-2619:14:185|temp|27.0|2026-01-2619:14:18
http://www.cnnetsun.cn/news/833772.html

相关文章:

  • 彻底解决Play Integrity验证限制:自定义ROM用户的5个突破技巧
  • 手把手教你学Simulink--电机电磁兼容与可靠性​场景示例:基于Simulink的电机轴电压与轴电流抑制仿真
  • 百度网盘命令行工具BaiduPCS-Go:高效文件管理指南
  • 从零搭建企业级开源仓库管理系统:KopSoft WMS实战指南
  • 如何高效配置微信防撤回补丁:3个步骤轻松掌握消息保护功能
  • 4个革命性技巧:用Kronos实现智能股票预测的超额收益
  • 一文解读Qwen3文本嵌入与重排序技术版图,零基础小白收藏这一篇就够了!
  • RAGFlow想说爱你不容易,win10环境搭建、常用修改
  • 2025如何学习Agent?谷歌重磅发布Agent白皮书
  • 颠覆式单文件库:重构C/C++开发的依赖管理与性能边界
  • KopSoft WMS仓库管理系统企业级部署实战指南
  • 3大核心功能掌握Kohya_ss:高效AI模型训练全方位指南
  • 走进吴忠码上羽毛球俱乐部:专业教练引路,科技助力成长
  • 在吴忠,与专业同行:开启你的羽毛球精进之旅
  • 解锁你的羽球潜能:在吴忠码上俱乐部,体验专业与科技融合的训练之旅
  • 吴忠码上羽毛球俱乐部:在科学指引与专业陪伴下,体验羽球成长之旅
  • Neko虚拟摄像头设置与视频流配置全攻略
  • 研究指出,6个高效AI论文平台能同时优化写作与降低重复率
  • 【YOLOv5 极限优化】基于 ShuffleNetV2 重构主干网络,打造超高效轻量级目标检测模型(文末含资料链接与视频讲解)
  • 文献管理新体验:Zotero-SciHub让文献自动下载不再是难题
  • 如何用AI提升开题报告质量?9款工具与模板修改实战分享
  • 6个维度解析Lean 4:形式化证明与程序开发的双向革命
  • 系统安全分析工具实战指南:从零开始全面掌握威胁检测平台
  • 开发者资源:探索公共API接口的免费工具宝库
  • itch.io桌面应用:独立游戏玩家的一站式游戏管理解决方案
  • Qwen3-Next-80B:AI推理性能全面超越Gemini-2.5-Flash-Thinking
  • 告别漫荒 + 杂乱!Teemii 打造私人漫画库,搭配 cpolar 随时随地看
  • 利用9种策略与10款AI写作工具,快速完成数学建模论文复现
  • 数学建模论文的高效复现:9种策略与10款AI写作工具助你事半功倍
  • 好写作AI:当“学术保姆”遇见“智能伙伴”,你的论文该跟谁走?