我正在尝试制作一个程序,该程序将在SQL Server上执行一些查询,由于某种原因,该代码具有奇怪的行为,因为它将在我的两台计算机上创建不同的日期值。
这是奇怪的代码部分。
Query += " dbo.MensajesProcesados.SentDateTime BETWEEN CONVERT(VARCHAR, '" + FechaInicio.Value.ToUniversalTime().ToShortDateString() + "', 103) AND CONVERT(VARCHAR, '" + FechaFin.Value.ToUniversalTime().ToShortDateString() + "', 103)";
在第一台计算机(工作中)给我:
BETWEEN CONVERT(VARCHAR, '5/18/2015', 103) AND CONVERT(VARCHAR, '5/19/2015', 103)
第二台不工作的计算机:
BETWEEN CONVERT(VARCHAR, '17/05/2015',103) AND CONVERT(VARCHAR, '19/05/2015',103)
这是行不通的,将输出以下错误
从varchar数据类型到datetime数据类型的转换导致值超出范围。
请,任何帮助将是巨大的!
最佳答案
为Sql Server
提供文化中立格式'yyyyMMdd'
:
Query += " dbo.MensajesProcesados.SentDateTime
BETWEEN '" + FechaInicio.Value.ToString("yyyyMMdd") + "'
AND '" + FechaFin.Value.ToString("yyyyMMdd") + "'";
关于c# - 日期时间在不同的计算机上表现很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30313557/