データベースを操作する過程では、いくつかの指標を日付別にまとめたり、一定期間内の合計金額をカウントしたりするなど、日付を扱うことが避けられません。 固定の日付であればそのまま直接指定しても問題ありませんが、多くの場合は現在の日付に合わせる必要があります。たとえば、先週の月曜日から先週の日曜日までのデータを抽出し、先月からデータを抽出し、過去 N か月間のデータを抽出します。 。 。 これらすべての要件に共通するのは、現在の日付に依存しているということです。次に、まず現在の日付が今週の何番目か、今月の何番目かなど、現在の日付に関する情報を取得する必要があります。その後、次のステップに進むことができます。 1. 必要な日付範囲を抽出する前に、よく使われる関数をいくつか紹介しましょう。 -- 最初にこの文を実行します SET @t = '2018-07-26 11:41:29'; -- この文をもう一度実行します SELECT DATE(@t) 現在の日付、YEAR(@t) 年、MONTH(@t) 月、WEEK(@t) 今年の週番号、DAY(@t) 今月の日番号、 HOUR(@t) 時間、MINUTE(@t) 分、SECOND(@t) 秒 実行すると、結果は次のようになります。 2. よく使われる日付の加算と減算の関数をいくつか紹介します。 1. ADDDATE(式, 日数) / SUBDATE(式, 日数): ADDDAT 関数には 2 つのパラメータがあります。1 つ目は計算する日付である基準日です。2 つ目は間隔式です。例: INTERVAL 1 HOUR。ここで、INTERVAL は間隔を意味し、中央の数字 1 は任意の整数に置き換えることができ、3 番目の時間は日/月/年などの時間単位で置き換えることができます。 SUBDATE の場合も同様ですが、減算演算になります。 完全な使用方法は次のとおりです。 ADDDATE('2018-07-26 11:41:29',INTERVAL 1 HOUR)を選択します。 サブ日付を選択します('2018-07-26 11:41:29'、間隔1時間); 2. DATE_ADD() / DATE_SUB(): 使用方法はADDDATE(expr, days) / SUBDATE(expr, days)と同じです。 3. 日付範囲の傍受 次に、上で紹介した日付関数を使用して、日付範囲を傍受できます。 1. 先週 -- 先週の日付範囲を抽出します SELECT CURDATE() NOW、 ADDDATE(ADDDATE(DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 1 DAY),-6),0) 開始日、 ADDDATE(DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 1 DAY),0) 日付まで 2. 先月 -- 先月の場合は SELECT CURDATE() NOW、 DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY), INTERVAL -1 MONTH) 開始日、 DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE()) DAY), INTERVAL 0 MONTH) 日付まで 3. 最初の4か月 -- 最初の4か月SELECT CURDATE() NOW、 ADDDATE(ADDDATE(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY), INTERVAL -4 MONTH) 開始日、 DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE()) DAY), INTERVAL 0 MONTH) 日付まで 4. 先週の木曜日から今週の水曜日まで 統計が自然な週に基づいて収集されない場合があり、週の開始日と終了日をカスタマイズする必要があります。これは次のように実行できます。 SELECT ADDDATE(DATE_SUB(CURDATE(),INTERVAL (IF(WEEKDAY(CURDATE())IN(3,4,5,6),WEEKDAY(CURDATE()),WEEKDAY(CURDATE())+7 )) + 1 DAY),-3) 開始日 , ADDDATE(DATE_SUB(CURDATE(),INTERVAL (IF(WEEKDAY(CURDATE())IN(3,4,5,6),WEEKDAY(CURDATE()),WEEKDAY(CURDATE())+7 )) + 1 DAY),3)duetodate これで、時間と日付の情報を抽出し、任意の間隔を傍受できるようになりました。 要約する 上記は、編集者が紹介したMysqlで指定された日付範囲を抽出する方法です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: 安全な構成のためにDockerでTLSを有効にする手順
>>: Vue はシームレスなカルーセル効果 (マーキー) を実現します
1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカ...
成熟したデータベース アーキテクチャは、最初から高可用性、高スケーラビリティなどの機能を備えて設計さ...
1. プロジェクトwarが保存されているディレクトリを入力しますDockerfileを編集する vi...
翻訳プログラムを例に挙げてみます。前回はWindowsでのアプリケーションのパッケージ化についてお話...
今日もまた罠に落ちてしまいました。 私は以前MySQLの主キーオーバーフローに遭遇したことがあり、そ...
最近では、多くのウェブサイトでは、ページ上の特定のコンテンツや情報を直接コピーすることは許可されてお...
SSH プラグインの使用による公開Publish Over SSH を使用する前に、SSH 秘密キー...
最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...
この記事では、VMware Workstation Pro で Win10 オペレーティング システ...
アプリケーションシナリオバックグラウンド管理システムを例にとると、各ユーザーには異なるボタン権限があ...
この記事では、参考までに、Baidu Mapsを使用して都市の位置特定を実現するVueの具体的なコー...
導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...
別のライブラリから別のライブラリにデータをインポートする必要がある場合があり、このデータは CSV ...
電話Amap API を呼び出す方法は? Amap が https://lbs.amap.com/a...
目次1. ブラウザのクッキーの値を取得する2. RGBを16進数に変換する3. クリップボードにコピ...