r9s*_*r9s 0 c# sql-server datetime
我正在将我的C#程序中的一些数据插入到SQL Server 2012中.我的表中的列是datetime类型的列.我的C#代码:
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
// returns 2016-04-11 11:47:05.535
Run Code Online (Sandbox Code Playgroud)
当我调试我的应用程序时,我可以看到日期格式正确(与上面相同).但是当我查看我的数据库时,这个日期是:
2016-11-04 11:47:05.537
Run Code Online (Sandbox Code Playgroud)
月和日交换.为什么会这样?
选择错误的数据类型时,你有一个坏习惯.
您永远不应该DateTime使用字符串表示形式存储您的值.SQL Server的datetime类型在.NET Framework端映射 System.DateTime.这就是为什么你应该直接用参数化查询插入你的DateTime.Now值.
但请注意案件反对DateTime.Now.
另一方面,让我们分析你的例子..
2016-04-11 11:47:05.535
2016-11-04 11:47:05.537
Run Code Online (Sandbox Code Playgroud)
忽略 datetime类型将全面毫秒部分.000,.003或者.007,我们可以100%肯定,这些价值观是完全相同一样基于只是它们的表示?
这些表示取决于sql server的排序规则和文化设置.这就是为什么你的2016-11-04 11:47:05.537 力量,甚至是4月4日的不是11月11日的.
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |