ホームページ > データベース > mysql チュートリアル > カレンダー テーブルに月の週番号を効率的に追加するにはどうすればよいですか?

カレンダー テーブルに月の週番号を効率的に追加するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-30 07:03:09
オリジナル
764 人が閲覧しました

How to Efficiently Add a Month's Week Number to a Calendar Table?

カレンダー テーブル内の月の週番号の取得

月内の週番号を決定することは、カレンダー管理の重要な側面です。この記事では、この属性を既存のカレンダー テーブルに追加するという課題について説明します。

特定の日付の週番号を計算するには、次の手順を実行できます。

  1. 最初の値を減算します。指定された日付からその月の何日目かを計算します。
  2. 結果の日番号を計算します。
  3. 日番号を次の値で割ります。 7 を入力して週番号を取得します。
  4. 最初の週を考慮して、結果を 1 ずつ増分します。

この場合、次のスキーマを持つカレンダー テーブルがあります。

>
CREATE TABLE [TCalendar] (
    [TimeKey] [int] NOT NULL ,
    [FullDateAlternateKey] [datetime] NOT NULL ,
    [HolidayKey] [tinyint] NULL ,
    [IsWeekDay] [tinyint] NULL ,
    [DayNumberOfWeek] [tinyint] NULL ,
    [EnglishDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [SpanishDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [FrenchDayNameOfWeek] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [DayNumberOfMonth] [tinyint] NULL ,
    [DayNumberOfYear] [smallint] NULL ,
    [WeekNumberOfYear] [tinyint] NULL ,
    [EnglishMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [SpanishMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [FrenchMonthName] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [MonthNumberOfYear] [tinyint] NULL ,
    [CalendarQuarter] [tinyint] NULL ,
    [CalendarYear] [char] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [CalendarSemester] [tinyint] NULL ,
    [FiscalQuarter] [tinyint] NULL ,
    [FiscalYear] [char] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
    [FiscalSemester] [tinyint] NULL ,
    [IsLastDayInMonth] [tinyint] NULL ,
    CONSTRAINT [PK_TCalendar] PRIMARY KEY  CLUSTERED 
    (
        [TimeKey]
    )  ON [PRIMARY] 
) ON [PRIMARY]
ログイン後にコピー

このテーブルに月の週番号を追加するには、次の更新を実行できます。ステートメント:

update TCalendar 
set = WeekNumberOfMonth = DATEDIFF(week, DATEADD(MONTH, DATEDIFF(MONTH, 0, FullDateAlternateKey), 0), FullDateAlternateKey) +1
ログイン後にコピー

このクエリは、DATEDIFF 関数を利用して、現在の日付と月の最初の日 (DATEADD を使用して取得) との差を計算します。結果の日番号を 7 で割って 1 ずつ増分して、週番号を決定します。

以上がカレンダー テーブルに月の週番号を効率的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート