我无法让我的ASPX-App在高效的服务器上运行。由于我的本地环境是德语,但服务器是英语,我的整个代码都没有提供文化支持,我现在正在整个脚本中实现它。
正如你可能想的那样,正如我在这里写的那样,它并不像我想要的那样有效。
该应用程序使用MSSQL数据库收集基于日期范围的信息。因此,我使用用户选择的日期范围进行计算,使用Date BETWEEN x AND y
。
日期由用户设置,并在脚本中解析为datetime-values以便能够处理它们:
_DateRangeStart = DateTime.Parse(DateStart + " 00:00:00", _Culture);
_DateRangeEnd = DateTime.Parse(DateEnd + " 23:59:59", _Culture);
_Culture
的定义如下:
public CultureInfo _Culture = CultureInfo.GetCultureInfo("de-DE");
和_DateRangeStart
(以及End
)是来自文字字段的用户输入。
因此,当我查看skript时,它向我显示用户输入从1.11.2009
(这是一个正确的德语格式化日期)转换为11/1/2009 00:00:00 AM
,应该是1.11.2009 00:00:00
}(对于_DateRangeStart)。
SQL无法读取此值,并且无法将char转换为有效的日期时间。
为什么转换没有正确完成?
答案 0 :(得分:3)
我猜你在DateTime变量上调用ToString()并且它以默认格式输出。 SQL然后尝试以它的默认格式解释它并失败。我认为您需要做的是以明确的格式格式化日期并将其发送到SQL Server。
E.g。
string myDate = _DateRangeStart.ToString("yyyy-MM-dd");
答案 1 :(得分:0)
你的sql server是否设置为另一种文化而不是de-de?这也会产生这种行为。如果你的sql server认为他是美国人,他想要美国格式的日期。