c# - 日期时间在不同的计算机上表现很奇怪

标签 c# sql sql-server

我正在尝试制作一个程序,该程序将在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/

相关文章:

sql-server - 了解 SQL Server 加密(通过密码)?

c# - 无法连接到任何指定的 mysql C#

c# - 从字符串动态构建 LINQ 查询

javascript - 格式化字符串和日期时间?

mysql - 如何在sql中获取表名和一列?

sql - Oracle 根据输入参数更新字段 A 或字段 B

sql - "column must appear in the GROUP BY clause or be used in an aggregate function"

mysql - sql中外键表中的重复键

sql - 计数表中值连续出现的次数

c# - 为什么这个简单的线程输出是正确的