0

我想从 ms 访问数据库中读取日期时间。

该列的数据类型为 DATETIME,值为:1/27/12 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>

在所有文本框中,仅显示日期( 1/27/12 ),不显示时间,但是当我在没有文本框的情况下显示时,将显示整个日期时间。另外我如何在两个文本框中分别获取日期和时间。

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

4

1 回答 1

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)

我意识到您可以通过要求 db 引擎为您提供您希望格式化的日期和时间片段来简化您的 ASP 代码。虽然 VBScript 不能使用该Format()功能,但 db 引擎可以。

SELECT
    Format(itemadditiondatetime, "hh:nn:ss") AS time_string,
    Format(itemadditiondatetime, "yyyy-mm-dd") AS date_string
FROM items;
于 2012-10-12T14:45:42.060 回答