c# - 不完整的 DateTime 与完整的 DateTime 比较
问题描述
我的 SQL Server 数据库中有一个数据类型列。它的签名如下: date (yyyy-mm-dd) 因此另一列 tinyint 代表小时。而另一个表包含完整的日期时间列 (yyyy-mm-dd hh:mm:ss.fff) 没有 mm,ss,fff 值。一切都在 0. 但小时就在那里..
我需要将这两者与实体框架进行比较。
我知道使用两个日期时间会很容易,但事实就是如此
现在我的 C# 代码中有一个模型。它们都是 DateTime 类型。而且我不知道如何正确比较它们。如果我可以创建一个匿名类型,那就太好了,我可以将这个 tinyint(或 C# 中的字节)添加到这个新的(另一个 DateTime)并从小时列中添加小时。但..
The property 'System.DateTime.Hour' has no setter
我不知道该怎么做。互联网上没有太多关于此的信息。
真的无法比拟吗?或者有办法做到这一点?
解决方案
我不确定你想要做什么,但是:如果你想在现有的 DateTime 中添加小时,你需要在这个 DateTime 中添加一个 TimeSpan。
var date = DateTime.Now;
date = date + TimeSpan.FromHours(5); // adds 5 hours to the date
您可以将“5”替换为您的 tinyint 值。
编辑 当您似乎有点难以理解我的简单示例时,代码比您应该拥有的代码更接近:
DateTime alreadyCompleteDate = ... // get the value from your database complete datetime column
DateTime incompleteDate = ... // get the value from your database incomplete datetime column
int hours = ... // get the number of hours to add to incompleteDate from your database tinyint column
DateTime completeDateTime = incompleteDate + TimeSpan.FromHours(hours);
// or whatever comparison you willing to do
var comparisonResult = alreadyCompleteDate < completeDateTime; // this works
推荐阅读
- javascript - 如何在javascript中使用数组中的值制作变量
- ionic-framework - 背景和前景中的位置跟踪
- python - 卸载 numpy 以修复某些问题。现在重新安装后,仍然收到“ModuleNotFoundError: No module named 'numpy'”错误
- c# - 如何优化大量图像的加载?
- python - 应用 PCA 后原始特征的重要性
- docker - Docker compose watch 和 web live reload
- java - java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver 创建 jar 后
- spring-boot - 无法启动 docker 容器
- django - Django 仅为新记录添加唯一约束
- javascript - 从对象数组中的数组中为组件选择值