VB2008查詢資料庫語法 與時間格式的轉換

請問各位大大

小弟再利用VB2008對資料庫做寫入

1.請問要如何將取出的時間變成24小時制呢

dim a as DateTime =DateTime.Now.ToString("HH:mm:ss")

這樣出來的值是a=#12:00:00 PM#

請問要如何變成24小時制的

2.

在做資料庫查詢時.會發生這個異常訊息:Incorrect syntax near '#'.

這是查詢的語法

Dim d1 As String = Format(DateTimePicker1.Value, "yyyy-M-d")

Dim d2 As String = Format(DateTimePicker2.Value, "yyyy-M-d")

Dim STR As String = "Data Source=SONGDING\SQLEXPRESS;Initial Catalog=PLCALM;Integrated Security=True"

Dim conn As SqlConnection = New SqlConnection(STR)

conn.Open()

Dim str1 As String = "select * from REPORT1 where S_SDAY BETWEEN #" & Format(d1) & "# AND #" & Format(d2) & "# "

Dim OleDbda As New SqlDataAdapter

OleDbda = New SqlDataAdapter(str1, conn)

Dim ds As DataSet

ds = New DataSet()

OleDbda.Fill(ds, "Shack") '在此出現異常中斷

這2個問題請教各位大大~~

已更新項目:

關於2的答案小弟找到了~~

Dim str1 As String = "select * from REPORT1 where S_SDAY BETWEEN '" + Format(d1) + "' AND '" + Format(d2) + "' "這樣就可以了

2 個已更新項目:

然後為了可以更方便辨識.能將他再簡化一下

Dim str1 As String = "select * from REPORT1 where S_SDAY BETWEEN @d1 AND @d2 "

Dim OleDbda As New SqlDataAdapter

OleDbda = New SqlDataAdapter(str1, conn)

3 個已更新項目:

OleDbda.SelectCommand.Parameters.Add(New SqlParameter("@d1", SqlDbType.Char))

OleDbda.SelectCommand.Parameters.Add(New SqlParameter("@d2", SqlDbType.Char))

4 個已更新項目:

OleDbda.SelectCommand.Parameters("@d1").Value = d1

OleDbda.SelectCommand.Parameters("@d2").Value = d2

5 個已更新項目:

這樣就比較好察看程式語法了!這是也是網友教小弟的.分享出來

6 個已更新項目:

Console.WriteLine(D.ToString("T"))...真是幫了大忙..不然我都試用組合的

Now.Hour & ":" & Now.Minute & ":" & Now.Second..因為找不出轉24小時制的~~感謝大大囉!!

1 個解答

評分
  • litfal
    Lv 5
    1 0 年前
    最佳解答

    1.你既然會格式處理了, 這對你來說應該是小問題

    你應該是輸出時才做格式處理, 而不是輸入時 Dim D As DateTime = Now

    Console.WriteLine(D.ToString("T"))

    Console.WriteLine(D.ToString("HH:mm:ss"))

    Console.WriteLine(D.ToString("tt hh:mm:ss"))

    試試就知道了

還有問題?馬上發問,尋求解答。