0

这就是我所拥有的:

Dim UsDateFormat As Date = DateTime.Parse(DataDate, New System.Globalization.CultureInfo("en-US")) 

Da = New OleDbDataAdapter("SELECT * FROM RawStockData WHERE PointDateTime >=#" & UsDateFormat.ToShortDateString & "# AND PointDateTime < #" & UsDateFormat.AddDays(1).ToShortDateString & "#", Con)

在9月选择任何日期时,它将显示30日的数据(这是唯一的数据),并且选择30日时,它将以“字符串未被识别为有效的DateTime”回复。

我哪里错了?

4

4 回答 4

1

在您使用 .ToShortDateString 的地方,将其替换为 .ToString("yy-MM-dd")

至少对于 ms sql,这是一种安全的日期格式,无论文化如何都可以使用,并且始终可以正确解释。

编辑:如果你真的想要你最终使用的格式,只需使用 .ToString("MM/dd/yy")

于 2013-10-02T12:53:25.897 回答
0

也许您的问题将使用DataTime.ParseExact得到解决。

尝试 ParseExact 后,请使用SqlCommand 参数来避免 Date 和 DateTime 的每个 SQL 错误。

示例代码:

Dim strYourData As String = "2013/10/02"
Dim dtYourData As DateTime = DateTime.ParseExact(strYourData, "yyyy/MM/dd", Nothing)

Dim cmdSelectRawStockData As System.Data.OleDb.OleDbCommand = yourOLEConnection.CreateCommand
cmdSelectRawStockData.CommandText = "SELECT * FROM RawStockData WHERE " _
    & "PointDateTime >= @YourData1 AND " _
    & "PointDateTime <= @YourData2"

cmdSelectRawStockData.Parameters.AddWithValue("@YourData1", SqlDbType.DateTime).Value = dtYourData
cmdSelectRawStockData.Parameters.AddWithValue("@YourData2", SqlDbType.DateTime).Value = DateAdd(DateInterval.Day, 1, dtYourData)

Da = New System.Data.OleDb.OleDbDataAdapter(cmdSelectRawStockData)
于 2013-10-02T12:19:05.013 回答
0

使用下面的代码,反之亦然

Dim dt As DateTime = DateTime.ParseExact(InputBookingdatesingleday.Text,
                                         "dd/MM/yyyy",
                                         CultureInfo.GetCultureInfo("en-GB"))

Dim dt As DateTime = DateTime.ParseExact(InputBookingdatesingleday.Text,
                                         "dd/MM/yyyy",
                                         CultureInfo.GetCultureInfo("en-US"))
于 2013-10-02T12:19:18.333 回答
0

虽然很乱,但我用

 Da = New OleDbDataAdapter("SELECT * FROM RawStockData WHERE PointDateTime >=#" & DataDate.Date.Month.ToString & "/" & DataDate.Date.Day.ToString & "/" & DataDate.Date.Year.ToString & "# AND PointDateTime <#" & DataDate.AddDays(1).Date.Month.ToString & "/" & DataDate.AddDays(1).Date.Day.ToString & "/" & DataDate.AddDays(1).Date.Year.ToString & "#", Con)

到底。

于 2013-10-02T13:07:50.540 回答