簡體   English   中英

使用Visual Basic對SQL數據庫進行時間查詢

[英]Time query for sql database using Visual Basic

我想使用來自SQL數據庫的Visual Basic在網格控件中顯示一天的最大時間和最短時間。 表格欄為:-

UserID,UserName,Date,Time
1 Shanks 30/1/2009 10:11:22
1 Shanks 30/1/2009 10:15:22
1 Shanks 30/1/2009 12:15:22
1 Shanks 30/1/2009 13:15:22

輸出必須在網格中

1 Shanks 30/1/2009 10:11:22 13:15:22

我將假設您的表結構是這樣的

CREATE TABLE mytable (UserID integer, UserName varchar(20), [Date] datetime, [Time] varchar(8))

您的時間存儲為varchar字段,因為sql2005中沒有時間類型。 這將顯示每個用戶和日期的最小和最大時間。 有兩種選擇,第一種是如果您的時間是HH:MM:SS,則可以只使用convert函數。 第二個示例向您展示了一個解析示例並自己構建日期的示例。

SELECT
   UserID,
   UserName,
   [Date],
   CONVERT(varchar, MIN(CONVERT(datetime, [Time], 108)), 108),
   CONVERT(varchar, MAX(CONVERT(datetime, [Time], 108)), 108)
FROM mytable
GROUP BY UserID, UserName, [Date]
ORDER BY UserID, [Date]


SELECT
   UserID,
   UserName,
   [Date],
   CONVERT(varchar, MIN(DATEADD(second, CAST(SUBSTRING(Time, 7, 2) AS integer), DATEADD(minute, CAST(SUBSTRING(Time, 4, 2) AS integer), DATEADD(hour, CAST(SUBSTRING(Time, 1, 2) AS integer), 0)))), 108),
   CONVERT(varchar, MAX(DATEADD(second, CAST(SUBSTRING(Time, 7, 2) AS integer), DATEADD(minute, CAST(SUBSTRING(Time, 4, 2) AS integer), DATEADD(hour, CAST(SUBSTRING(Time, 1, 2) AS integer), 0)))), 108)
FROM mytable
GROUP BY UserID, UserName, [Date]
ORDER BY UserID, [Date]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM