2012-10-12 35 views
0

我想從ms訪問數據庫讀取日期時間。從ms訪問數據庫使用vb讀取datetime列

列是DATETIME數據類型和價值的是:12年1月27日5:10 PM

<html> 
<body> 
<% 



Dim Conn 
Dim Rs 
Dim sql 

Dim sConnection 


Dim Today as Date //this gives error - unexpected end of file , i want to display current date and time ??? 


Set Conn = Server.CreateObject("ADODB.Connection") 
Set Rs = Server.CreateObject("ADODB.Recordset") 

filepath= Server.MapPath ("mydb.mdb") 
sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filepath 

Conn.Open(sConnection) 



sql="select * from items;" 

Set Rs = Conn.Execute(sql) 

if Rs.EOF then 

    Response.write("No records found") 
else 


    do until rs.eof 


      ctime =  rs("itemadditiondatetime") 

      Response.write("<br/>Time : <input name='dateandtime[]' value=" & ctime & "/>" & ctime) 


      rs.movenext 

    loop 

end if 

Rs.Close 
Conn.Close 

Set Rs = Nothing 
Set Conn = Nothing 


%> 
</body> 
</html> 

在所有文本框只顯示日期(12年1月27日),時間是不是被顯示,但是當我顯示沒有文本框時,則顯示整個日期時間。另外我如何在兩個文本框中分別獲取日期和時間。

另外,我需要格式化日期爲yyyy-mm-dd。

回答

2

如果這是傳統的ASP/VBScript中:

'Dim Today as Date 
Dim Today ' without declaring data type 

可以使用FormatDateTime功能,從您的ctime值的日期和/或時間分量。

FormatDateTime(ctime, 3) ' long time 
FormatDateTime(ctime, 2) ' short date 

見的情況下,其他FormatDateTime選擇你喜歡不同的格式,比我建議的鏈接頁面。

我忽略了「需要格式化日期爲yyyy-mm-dd」。不幸的是,VBScript doesn't provide VBA's Format(ctime, "yyyy-mm-dd")功能。所以我認爲你可能需要從ctime中提取年份,月份和日期片段,然後按照你想要的順序將它們重新組合。

Year(ctime) & "-" & Right("0" & Month(ctime), 2) & _ 
    "-" & Right("0" & Day(ctime), 2) 

我意識到,你可以通過詢問數據庫引擎,你想給你格式化的日期和時間段簡化你的ASP代碼。雖然VBScript不能使用Format()函數,但數據庫引擎可以。

SELECT 
    Format(itemadditiondatetime, "hh:nn:ss") AS time_string, 
    Format(itemadditiondatetime, "yyyy-mm-dd") AS date_string 
FROM items; 
+0

如何顯示當前日期和時間 – sqlchild

+1

我對ASP非常生疏。這是接近你想要的嗎? 'FormatDateTime(ctime,3)' – HansUp

+0

是的先生,這是完全正確的:) – sqlchild