我遇到这种情况,我有一个SqlDatasource控件,而select查询就像:
SELECT col1, col2 FROM table1 WHERE colDate = @date
@date的来源是一个标签,文字为:2009-05-29 12:06:00 运行查询时出现以下错误:
转换日期时转换失败 和/或来自字符串的时间
我尝试使用convert(datetime,@ date),以及标签本身的不同日期/时间格式。每次我收到错误。
但是,当我在管理工作室中运行查询时:
SELECT col1, col2 FROM table1 WHERE colDate = '2009-05-29 12:06:00'
它就像一个魅力!
有没有人知道我缺少什么?
编辑:
我发现@date被解析为05-29-2009 01:30:00 TT 我不知道TT来自哪里?我确定SQL Server无法处理它?</ p>
答案 0 :(得分:2)
请尝试:
SELECT col1, col2 FROM table1 WHERE colDate = convert(datetime, @date,120)
有关日期时间数据类型的可用转换格式的完整列表,请参阅以下SQL Server联机丛书参考:
答案 1 :(得分:2)
发现问题,我有一个Now.ToString(“MM / dd / yyyy hh:mm:ss TT”),它将双T添加到@date ...现在运行完美!
全部谢谢!
答案 2 :(得分:1)
您可以尝试
SELECT col1, col2 FROM table1 WHERE colDate = CONVERT(DATETIME, @date, 120)
尝试:
<SelectParameters>
<asp:ControlParameter ControlID="label1" Name="date" PropertyName="Text" Type="DateTime" />
</SelectParameters>