<DateAdd関数で日付や時間の計算> こんにちは、Ken3です。 今回は、 DateAdd関数で日付や時間の計算 をしてみたいと思います。 と言っても、たいしたことないのでご安心を。 /* * 1.DateAdd関数の使い方 */ DateAdd(単位,増減値,基準となる日付・時刻) で 簡単にできるみたいです。 ポイントは ^^^^^^^^^^ 単位は、 y 年 m 月 d 日 h 時 n 分 s 秒 で(他にも四半期などあります)。 増減値の指定をプラス、マイナスの値で計算ができます。 簡単なサンプルは、 <% Response.Write "現在時刻は、" & Now & "です<br>" Response.Write "6時間後は、" & DateAdd("h", 6, Now) & "です<br>" Response.Write "5日前は、" & DateAdd("d", -5, Date) & "です<br>" %> な感じで使用すると、結果は、 現在時刻は、2003/01/08 18:21:33です 6時間後は、2003/01/09 0:21:33です 5日前は、2003/01/03です となります。 有効期限一週間とか最近(過去3日)に投稿された質問、、 と 日付の計算で使ってみてください。 テストは、 http://www.ken3.org/cgi-bin/test/test031-1.asp で、出来ます。 /* * 2.SQLの条件で使ってみる */ データベース名:db029.mdb テーブル名:KANSOU フィールド ID オートナンバー型 F_KUBUN テキスト型 ASP,VBA,GUCHI,24Hと4つの区分 F_NO 整数型 0:は全体に対して、1〜はX話にする F_MEMO テキスト型 一言メッセージ WriteTime 日付型 書き込み日付 上記、データベースがあって、 http://www.ken3.org/cgi-bin/test/test029-1.asp でいままで書き込まれた感想を表示しています。 今まで書き込まれたご意見・感想 日付 区分 NO. 感想 2003/01/06 16:47:38 24H 全体 コンビニと環境問題、、、 2003/01/06 16:47:02 VBA 全体 VBA系もがんばろう 2003/01/06 16:46:40 ASP 全体 テストデータを作成 2003/01/02 20:45:28 24H 全体 ssssss 2003/01/02 20:45:02 GUCHI 全体 テスト 3日前までの感想を表示するSQLを発行するために、 今回のDateAddを使用してみます。 <%@LANGUAGE=VBScript%> <html> <head> <title>DateAdd関数を使用して3日前までのデータ表示</title> </head> <body> <h2>DateAdd関数を使用して3日前までのデータ表示</h2> test031-2.asp<br> <hr> <% Call TEST_PRINT() '関数にまとめた。 %> <HR> 終了です。<br> <% Call OUT_SRC("DateAdd") 'ソースの表示関数を呼ぶ %> </body> </html> <% '3日前を条件にして、SQLを発行 Sub TEST_PRINT() 'ADO DB Connection オブジェクトを作成する、英文そのままじゃん Set db=Server.CreateObject("ADODB.Connection") '.Provider?プロバイダー?通信会社?じゃなくって 'データアクセスにはJet.OLEDB.4.0を使うことを設定 db.Provider = "Microsoft.Jet.OLEDB.4.0" '次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す db.ConnectionString = Server.MapPath("db029.mdb") 'やっとデータベースを開ける db.open 'SQL文を作る strSQL = "Select * From KANSOU " '感想(KANSOU)テーブルから全項目(*)セレクト strSQL = strSQL & "WHERE WriteTime >= #" & DateAdd("d",-3, Date) & "# " strSQL = strSQL & "ORDER BY WriteTime DESC" '並べ替えは時間の降順 '中身を確認で表示 Response.Write "発行するSQL文は[" & strSQL & "]です。<BR>" 'お約束のレコードセットの作成 SQL文の発行 Set rs = db.Execute(strSQL) 'データの表示をテーブルで行う Response.Write "<TABLE Border='1'>" '見出しをバカっぽく、そのまま書き込む Response.Write "<TR>" Response.Write "<TD>日付</TD>" Response.Write "<TD>区分</TD>" Response.Write "<TD>NO.</TD>" Response.Write "<TD>感想</TD>" Response.Write "</TR>" 'お約束のEOFまでループは(データが無くなるまでループ)、 Do While rs.EOF = False 'レコードセットの.EOFがFalseの間 Response.Write "<TR>" '内容を表示する、行開始のタグ<TR> Response.Write "<TD>" & rs.Fields.Item("WriteTime") & "</TD>" Response.Write "<TD>" & rs.Fields.Item("F_KUBUN") & "</TD>" If rs.Fields.Item("F_NO") = 0 Then '0の全体かチェック Response.Write "<TD>全体</TD>" Else Response.Write "<TD>" & rs.Fields.Item("F_NO") & "</TD>" 'NO表示 End If Response.Write "<TD>" & rs.Fields.Item("F_MEMO") & "</TD>" Response.Write "</TR>" '次のレコードにポインタを移動する rs.MoveNext 'これを忘れると悲惨なことに、、、 Loop Response.Write "</TABLE>" 'テーブルは終わりです '開いていたレコードセットを閉じる rs.Close 'データベースも閉じようよ db.Close 'お行儀よくオブジェクトも開放しましょう(通常は自動的に解放されるけど) Set db = Nothing End Sub %> ポイントは ^^^^^^^^^^ 'SQL文を作る strSQL = "Select * From KANSOU " '感想(KANSOU)テーブルから全項目(*)セレクト strSQL = strSQL & "WHERE WriteTime >= #" & DateAdd("d",-3, Date) & "# " strSQL = strSQL & "ORDER BY WriteTime DESC" '並べ替えは時間の降順 の "WHERE WriteTime >= #" & DateAdd("d",-3, Date) & "# " で、 WriteTime 日付型 書き込み日付 が、3日前を条件にしたいので、 DateAdd("d",-3, Date) と関数を使って計算してます。 日付型は#で囲むのも注意点かなぁ。 まぁ、DateAdd単体テストだけだとさびしかったのでおまけでした。 テストは、 http://www.ken3.org/cgi-bin/test/test031-2.asp で、出来ます。 /* * 3.終わりの挨拶 */ 今回は、 DateAdd関数の簡単な説明でした。 今後は、SQLでUPDATEの更新、DELETEで削除をやってから、 何か作ってみたいですね。 ASP、VBScript勉強中の三流プログラマーのKen3でした。
ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、
感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]
まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。
次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません
広告:
DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く
VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]