在我的 SQL 服务器上,我有一个非常简单的测试表,它只包含三行:
ID
和Date
. Hours
( varchar
, DateTime
, varchar
)。
SQL 中的 DateTime 格式如下yyyy-MM-dd HH:mm:ss.fff
:
C# 中的 DateTime 格式如下:yyyy-dd-MM HH:mm:ss.fff
.
我使用以下代码获取 C# DateTime 格式:
string ddd = "2012-10-10 00:00:00.000";
dt1 = DateTime.ParseExact(ddd, "yyyy-MM-dd HH:mm:ss.fff", null);
如果我尝试进入yyyy-dd-MM
我会得到一个错误:
日历不支持由字符串表示的 DateTime。
在我的 C# 应用程序中,我试图找出不同日期之间的总小时数。我有点让它工作,但它只适用于 01 到 12 之间的日期。
所以从2012-01-10
到2012-10-10
(十天)会给我正确的数据库总小时数。
但是当我写信2012-01-10
给2012-14-10
(十四天)时,我收到一个错误:
将 char 数据类型转换为 datetime 数据类型导致超出范围"
先感谢您。
PS。你能推荐一种更简单的约会方式吗?
mySQL 查询
string CommandText = "SELECT * FROM date_test WHERE id = '4' AND date BETWEEN '" + dt1 + "' AND '" + dt2 + "'";
我已经找到了问题,但没有找到解决方案。
问题是SQL数据库看格式,想要yyyy-MM-dd,但是C#只能发送yyyy-dd-MM。
为什么不能ParseExact()
做 yyyy-MM-dd?