0

そこで、セミナー用の PHP スケジューラーを開発中です。基本的には、週に 1 回、同じ日に同じ時間に開催されるセミナーのリストがあり、一定の週数で開催されます。

現在、私のデータベースには、pkey、開始日、終了日、セミナーの名前、日時を表す文字列があります。

現在、今日の日付をすべてのセミナーの開始日と終了日と比較することに基づいて、現在実行中のすべてのセミナーを表示するページがあります。さて、今日のセミナー会議を表示したいだけです。

スケジュール変数をDATEにする必要があると思います。varchar 文字列は、この部分からどこから始めればよいかさえわからないため、dect テープで修正しました。

[weekday] [time] 形式の DATE 型変数に日時を格納するように SQL 変数をフォーマットするにはどうすればよいですか? これは可能ですか?

編集

私が求めていることを理解している誰かが、私の質問を言い換えるのを手伝ってくれますか? 私が求めていることを明確にすることができないようです。

たとえば、11 月 14 日から 12 月 26 日まで水曜日の午後 7 時に MySQL セミナーがあるとします。水曜日の午後 7 時を VARCHAR 文字列として保存し、StartDate と EndDate を日付として保存しました。現在、進行中のすべてのセミナーをリストするのに問題はありませんが、現在の平日に対応する曜日の会議のみでフィルタリングしたいと思います。これを行うには、「水曜日の午後 7 時」を DATE 変数に変換する必要がありますが、スケジュールにエコーするためにまったく同じ形式を維持します。

4

3 に答える 3

2

日付を文字列として保存することはお勧めできません。MySQL には多くの日付/時刻関数が含まれています。このデータをDateTime データ型として保存し、これらの関数のいずれかを使用して操作する必要があります。

例えば:

-- returns 1 for Monday
SELECT DATE_FORMAT(CURDATE(), '%w');
于 2012-11-12T22:32:40.253 に答える
1

MySQL は、日時に「YYYY-MM-DD HH:MM:SS」、日付形式に「YYYY-MM-DD」を使用します。

保存方法に応じて、DATE 列を追加してから更新できます。

update TABLE set datecolumn = 'date_string_col';

現在持っている varchar col が適切な形式で保存されている限り、そうでない場合は、形式を指定されたものに変更する必要があります。

詳細については、http: //dev.mysql.com/doc/refman/5.1/en/datetime.htmlを参照してください。

于 2012-11-12T22:33:24.837 に答える
0

ここで私の質問を誰も理解できなかったので、私は自分で答えます。私が知っている何人かの専門家やインストラクター (私が何を望んでいるかを問題なく理解してくれました...) と話した後、技術的に不可能であることがわかりましたが、回避策は、その平日に該当する任意の日付を選択して使用することです。代用として、常に平日形式で表示します。

于 2012-11-28T21:38:34.793 に答える