我想从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。
答案 0 :(得分: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;