C# SQLite中的日期时间具有AM/PM

C# SQLite中的日期时间具有AM/PM,c#,sqlite,datetime,C#,Sqlite,Datetime,我有一个由外部程序填充日志数据的数据库 一列是DateTime类型的时间戳 根据时间格式的外部程序主机设置,它使用24小时或12小时AM/PM格式写入数据库 我使用此查询获取时间(在同一台机器上,但两个数据库文件来自不同的外部设备): 输出(来自具有AM/PM时间设置的机器) 和另一个(来自具有24小时时间设置的机器) 为什么数据库datetime在AM/PM时保持12小时模式?我可以用SQL更改数据库datetime的格式吗 我还想将这些数据读入C#中的DataTable中,我更喜欢SQL语句

我有一个由外部程序填充日志数据的数据库

一列是DateTime类型的时间戳

根据时间格式的外部程序主机设置,它使用24小时或12小时AM/PM格式写入数据库

我使用此查询获取时间(在同一台机器上,但两个数据库文件来自不同的外部设备):

输出(来自具有AM/PM时间设置的机器)

和另一个(来自具有24小时时间设置的机器)

为什么数据库datetime在AM/PM时保持12小时模式?我可以用SQL更改数据库datetime的格式吗


我还想将这些数据读入C#中的DataTable中,我更喜欢SQL语句将任何给定的datetime读入为24小时datetime。

如果SQLite与MSSQL和Oracle类似,它没有datetime的格式,除了它的内部存储格式,您不需要了解它的任何内容。您看到的格式仅在使用客户端查询该日期时显示,而实际格式取决于您使用的客户端,例如在客户端计算机上选择的常规时间设置。

您是否尝试过将日期时间戳存储为ISO格式(
YYYY-MM-DD HH:MM:SS
)?您是否希望转换为24小时格式,如以下问题:?@TetsuyaYamamoto我无法控制外部程序如何将数据写入数据库。那么,您的意思是转换作业应该由SQLite查询本身处理吗?如果这是您想要的,首先我建议您应该避免通过查询进行日期时间转换,因为SQL是一个分层体系结构,所以显示格式处理程序应该在表示层中完成。SQLite没有类型。我可以假设您的DB数据以字符串形式存储为文本类型。使用适当的日期和时间。@AlexanderPetrov根据表架构,它是一个
datetime
。这可能只是一个字符串吗?数据库是由一台设置为12小时时间的机器编写的,我在另一台设置为24小时时间的机器上读取数据库,但它显示为12小时AM/PM。。。
SELECT Time FROM tabData
2017-05-31 8:52:26 AM
2017-05-31 08:52:26