0

msaccessデータベースから日時を読みたい。

列のデータ型は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)、時刻は表示されませんが、テキストボックスなしで表示すると、日時全体が表示されます。また、2つのテキストボックスで日付と時刻を別々に取得するにはどうすればよいですか。

また、日付を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 に答える