【发布时间】:2016-06-15 07:28:53
【问题描述】:
我有一个jQuery calender,它在ASP Textbox 中有值(不能通过日历编辑栏)
两个日历创建一个从和到日期。 (包括默认值)
我需要将string 从dd/mm/yyyy 转换为yyyy-MM-dd,但尽管尝试了各种堆栈想法,但仍低于错误-
错误:转换日期和/或时间时失败 人物
代码:
Dim vDateFrom As Date = sDateFrom.Text
vDateFrom = vDateFrom.ToString("yyyy-MM-dd")
Dim vDateTo As Date = sDateTo.Text
vDateTo = vDateTo.ToString("yyyy-MM-dd")
如果我用以下内容覆盖上面的内容,它运行的SQL 可以工作:
vDateFrom = 2016-03-01
vDateTo = 2016-06-01
当我调试时,日期仍然是dd/mm/yyyy,即#6/15/2016 12:00:00 AM#
我还包含了 SQL 字符串行(测试),我可以在那里简单地更改日期。
Using command As New SqlCommand("Select COUNT(d.ID) FROM TblData As D JOIN TBLPROPERTYLIST As p On d.UPRN = p.UPRN WHERE 1 = 1 And d.SurveyDate between '" & vDateFrom.ToString & "' AND '" & vDateTo.ToString & "' And d.Field1 = " & i & " And d.Field2 = " & j & "" & vString & "", connection)
注意事项:
查看了其他内容:
-添加 CDate 以及
【问题讨论】:
-
您应该使用 sql 命令中的参数。这可能会解决问题。
-
你不应该依赖文化相关的日期时间格式。如果你真的需要,你可以read this。但无论如何,您的查询应该将值插入为 parameter。像你在这里做的那样连接查询是非常糟糕的习惯......
-
我应该注意SQL是在.aspx.vb的页面上
-
将数据存储在
Date或DateTime变量中后,请继续使用datetime类型。是您坚持要返回 strings 导致您的格式问题。正如标准具所说,使用参数,以便 ADO.Net 可以在 VB.Net 中获取您的DateTime值,并将它们直接转换为 SQL Server 中的datetime值。 -
日期没有格式。 NET 提供程序完全能够使用参数将 DateTime 变量传递给 DB,而完全没有任何旋转。如果 db 列也是 Date 类型,它们将正常工作。此外,您应该打开 Option Strict - 其中一些代码将无法编译。
标签: .net sql-server vb.net datetime