c# - SQL 选择查询 - 日期时间中没有秒或毫秒
问题描述
我有一个带有 tablePhoneHistory
和 column的数据库Date
,它的datetime
数据类型。
我尝试使用这个答案,但我无法让它工作。因为我需要 aDataTable
作为返回类型,而且我目前也在使用DataAdapter
.
这是我目前拥有的。我只得到小时和分钟的日期,而不是秒和毫秒。
public static DataTable GetHistory()
{
string query = "SELECT TOP 100 Date FROM PhoneHistory";
return SelectSql(connectionString, query, "");
}
private static DataTable SelectSql(string connectionString, string query, string dtName, params object[] args)
{
using (OleDbConnection con = new OleDbConnection(connectionString))
{
try
{
con.Open();
}
catch (Exception ex)
{
Global.Log($"Es konnte keine Verbindung zur Datenbank hergestellt werden! Fehlermeldung: [{ex.Message}]");
return new DataTable(dtName);
}
using (OleDbCommand command = new OleDbCommand(query, con))
{
for (int i = 0; i < args.Length; i++)
{
command.Parameters.AddWithValue($"@p{i + 1}", args[i]);
}
using (OleDbDataAdapter a = new OleDbDataAdapter(command))
{
DataTable dt = new DataTable(dtName);
try
{
a.Fill(dt);
return dt;
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}
return new DataTable(dtName);
}
}
}
}
我需要使用DataTable
作为返回类型。
我想得到这样的日期(这是它在数据库中的样子):
2019-07-30 10:10:16.526
2019-07-30 10:08:58.711
但我总是得到这样的日期(这是我用代码得到的):
2019-07-30 10:10:00.000
2019-07-30 10:08:00.000
解决方案
DataAdapter 没有“减少”毫秒数。您需要在 DataGridView 中格式化列的单元格样式。在设置 DataSource 后添加它。
dgdHistory.Columns[0].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss.fff"
这将按照您描述的方式对其进行格式化。
推荐阅读
- c - 获取由 C 中的 AST 生成的树 ( String ) 输出的解决方案
- arrays - 查找数组中无序的对数
- c - C指针中的奇怪行为
- java - Java BigDecimal long 带十进制转换
- javascript - ClassName.variable 总是静态成员变量吗?
- flutter - Flutter:如何在 GetX 上监听变量变化
- database - FutureBuilder 和 ListView.builder
- html - Bootstrap Grid - 在 div 中获取文本和图像之间所需的间距/填充的问题
- flatpickr - Livewire 和 Flatpickr - 重新渲染后失败
- python - 我正在尝试创建一个在没有 CSV 模块的情况下读取 CSV 文件的函数,但遇到格式错误