【发布时间】:2017-05-31 13:09:19
【问题描述】:
我有一个由外部程序填充日志数据的数据库。
一列是 DateTime 类型的时间戳。
根据外部程序主机的时间格式设置,它可以使用 24h 或 12h 格式和 AM/PM 写入数据库。
我用来获取时间的这个查询(在同一台机器上,但是来自不同外部设备的两个数据库文件):
SELECT Time FROM tabData
输出(来自具有 AM/PM 时间设置的机器)
2017-05-31 8:52:26 AM
和另一个(来自具有 24 小时时间设置的机器)
2017-05-31 08:52:26
为什么数据库日期时间在上午/下午保持 12 小时模式?我可以通过 SQL 以某种方式更改数据库日期时间的格式吗?
我还想将这些数据读入 C# 中的 DataTable,我更喜欢 SQL 语句将任何给定的日期时间读取为 24 小时日期时间。
【问题讨论】:
-
您是否尝试过以 ISO 格式 (
YYYY-MM-DD HH:MM:SS) 存储日期时间戳?你想像这个问题一样转换成24小时格式吗:stackoverflow.com/questions/20655003/…? -
@TetsuyaYamamoto 我无法控制外部程序如何将数据写入数据库。
-
那么,您的意思是转换作业应该由 SQLite 查询本身处理吗?如果这是您想要的,首先我建议您避免通过查询进行日期时间转换,因为 SQL 是分层架构,显示格式处理程序应该在表示层中完成。
-
@AlexanderPetrov 根据表模式,它是
datetime。可能实际上只是一个字符串?