- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当我从 C# 查询涉及 DateTime
字段的 SqlServer 数据库时,返回的 System.DateTime
具有 Kind==Unspecified
,这不足为奇因为 SqlServer DateTime
类型不保留任何时区信息。
我想知道是否有一种方法可以自动将这些值读取为本地值或通用值,而不是在读取查询结果后手动转换它们,这会在遗漏字段时引入更多错误的可能性。
典型的代码如下:
using (var conn = ...)
using (var command = ...)
{
conn.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
DateTime dateField = (DateTime)reader["date"];
//dateField.Kind == Unspecified
}
}
最佳答案
DateTime dateField = DateTime.SpecifyKind((DateTime)reader["date"], DateTimeKind.Utc);
由于它不会持久保存在数据库中,因此您必须在自己的代码中检索时指定它,尽管您可以创建扩展方法,但 DataReader 中没有快捷方法。
public static class Helper{
public static DateTime GetDateTimeAsUtc(this IDataReader reader, string column){
return DateTime.SpecifyKind((DateTime)reader[column], DateTimeKind.Utc);
}
}
然后调用它
DateTime dateField = reader.GetDateTimeAsUtc("date");
关于c# - 从数据库查询 DateTime 字段时,我可以控制 DateTimeKind 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43227738/
这两个产生相同的结果,但我预计它们将关闭 6 小时。我有什么不明白的? Console.WriteLine(new DateTime(1970, 1, 1, 12, 1, 0, DateTimeKin
目前当我使用 {Timestamp}在 outputTemplate 中,它似乎是由 DateTime.Now 生成的因此属于 DateTimeKind.Local flavor ,因为当我给它一个“
var dt1 = new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified); var dt2 = new DateTime(1, 1,
我有一个像这样的 POCO: public class BlogEntry { public string Title { get; set; } public DateTime Da
我正在编写一个程序来处理 US Airways Flight 1549 的成绩单,从本地时间2009年1月15日15:05:34开始。 我打算将时间存储在 DateTime 变量中,但对 DateTi
我只是想知道 JavaScript 中 C# DateTimeKind.Local 的等价物以及如何在 JavaScript 中设置它 最佳答案 JavaScript 中的大多数 DateTime 本
storeDateTimeAsTicks 是最近 SQLite Net 实现中的默认行为,与存储为字符串相比,它还具有性能优势。 不幸的是,当将 DateTime 刻度保存到数据库时,它会忽略时区,并
是否可以在 Kind == DateTimeKind.Utc 的实体对象中定义 DateTime 属性?通过使用 .edmx 文件或 t4 模板? 如果可能使用 t4,请描述如何更改属性。目前,该属性
这怎么可能?我预计 UTC 和本地时间至少相差 1 小时 使用 C# 在 Visual Studio 中查询 Azure 上的 cosmosDB 时出现问题 最佳答案 As per the MSDN
当我从 C# 查询涉及 DateTime 字段的 SqlServer 数据库时,返回的 System.DateTime 具有 Kind==Unspecified,这不足为奇因为 SqlServer D
我有一个数据库,其中所有日期都是 UTC,并且驱动程序总是向我发送带有 DateTimeKind.Unspecified 的 DateTime 对象。我想假设它们是 UTC 时间并转换为本地时间。 使
比方说,我有一个这样的字符串 - “2014-09-30T20:38:18.280”,我如何将其解析为 DateTimeKind.Utc 的 DateTime 字段。 当我执行 DateTime.Pa
这个问题在这里已经有了答案: Entity Framework DateTime and UTC (18 个答案) 关闭 6 年前。 我有一个 C# 程序,其中所有 DateTime 对象都是 Da
有没有办法指定我希望 OrmLite 实现的所有 DateTime 设置为 UTC 类型? 插入行时,我通过存储过程在数据库中存储大量 DateTime: insert [Comment] ( B
我有一个应用程序,它可以从 SQL 读取数据并通过 WCF 将其发送到客户端应用程序,其方式与此类似: SqlDataAdapter da = new SqlDataAdapter( cmd ) Da
如何通过 ProtoBuf 使用 DateTimeKind 选项序列化日期时间字段。反序列化时,我想要带有 DateTimeKind 选项的日期时间字段。 我知道我们可以通过添加一个附加属性来将反序列
这个问题在这里已经有了答案: How to make ASP.Net MVC model binder treat incoming date as UTC? (7 个答案) 关闭 5 年前。 我在
我想解析一个代表 UTC 格式的日期时间的字符串。 我的字符串表示包括祖鲁时间规范,该规范应指示该字符串表示 UTC 时间。 var myDate = DateTime.Parse("2012-09-
我正在构建一个 Web API,但在 DateTimes 的 JSON 序列化方面遇到问题。经过一些测试后,我只能得出结论,Newtonsoft.Json.JsonConvert 和/或 Newton
我继承了 C# 代码,其中包含大量 DateTimes,其中 Kind 属性为 DateTimeKind.Unspecified。这些被送入 Datetime.ToUniversalTime() 返回
我是一名优秀的程序员,十分优秀!