日時式

日時をアプリの動作に組み込む

日時式は DateDuration 値を使用して、DateTimeDateTimeDurationNumber 値を生成します。

以降のセクションでは、日時式を構築するためのコンポーネントについて説明します。

式を初めて使用する場合式: 基本情報もご確認ください。

現在日時の関数

  • NOW(): ユーザーのデバイスの現在の DateTime
  • TIMENOW(): ユーザーのデバイスの現在の TimeTIME(NOW()) に相当します。関連情報: TIME()
  • TODAY(): ユーザーのデバイスの現在の DateDATE(NOW()) に相当します。関連情報 DATE()
  • UTCNOW(): 協定世界時(UTC)での現在の DateTime

NOW()TODAY()TIMENOW() から返される値には、ユーザーのデバイスのタイムゾーン オフセットが反映されます。たとえば、ユーザーのデバイスのタイムゾーンが太平洋標準時(PST)の場合、返される値は UTC-08:00 であり、ユーザーのデバイスのタイムゾーンが香港の場合、返される値は UTC+8:00 です。

ユーザーのデバイスは、データの読み取りまたは更新のためにサーバーにアクセスするときに、リクエストにそのタイムゾーンを組み込みます。サーバーは日付と時刻を計算するときにユーザーのデバイスのタイムゾーンを使用します。たとえば、日時を含むセキュリティ フィルタとワークフロー ルールをサーバーが評価する場合などです。

モバイル デバイスの言語 / 地域設定やブラウザの言語設定が返される値の形式にどのように影響するかについては、Date、Time、DateTime 形式を使用するアプリに関する考慮事項をご覧ください。

時間コンポーネント関数

  • EXTRACTDURATIONS(): テキスト値に含まれる Duration 値のリストの抽出。
  • EXTRACTTIMES(): テキスト値に含まれる Time 値のリストの抽出。
  • HOUR(): 特定の Duration の時間コンポーネント。
  • MINUTE(): 特定の Duration の分コンポーネント。
  • SECOND(): 特定の Duration の秒コンポーネント。
  • TIME(): DateDateTimeTime のいずれかの Time
  • TOTALHOURS(): Duration の総時間数。
  • TOTALMINUTES(): Duration の総分数。
  • TOTALSECONDS(): Duration の総秒数。

HOUR()MINUTE()SECOND() はそれぞれ、Time 値ではなく、Duration 値を入力として受け取ることに注意してください。Time 値を Duration 値に変換するには、別の Time 値を減算します。たとえば、現在の時間帯を Duration に変換するには、TIMENOW() - "00:00:00" のように記述します。

日付コンポーネント関数

  • DATE(): DateDateTimeTime のいずれかの Date
  • DATETIME(): DateDateTimeTime のいずれかの DateTime
  • DAY(): Date の日情報。
  • EOMONTH(): 各月の長さと閏年を考慮して、指定した月数後の月の最終日を計算します。
  • EOWEEK(): Date または DateTime が含まれる週の最終日を計算します。
  • EWOMONTH(): Date 値や DateTime 値により特定された月の最後の平日(月曜日から金曜日)の日付を計算します。
  • EXTRACTDATES(): テキスト値内の Date 値のリストを抽出します。
  • EXTRACTDATETIMES(): テキスト値内の DateTime 値のリストを抽出します。
  • ISOWEEKNUM(): Date または DateTime の ISO 週番号。
  • MONTH(): Date の月番号。
  • WEEKDAY(): Date の曜日番号。日曜日は 1、土曜日は 7 です。
  • WEEKNUM(): Date の週番号。週は日曜始まりで計算されます。
  • WORKDAY(): 週末やその他の指定された日を除外した、指定された日数後の日付を返します。
  • YEAR(): Date の年。

AppSheet では、"MM/DD/YYYY" などの一部の定数値は Date 値として評価されます。同様に、"000:00:00"Duration 値として評価されます。ただし、スプレッドシートのデータを同じ形式にする必要はありません。スプレッドシートの日付と時刻の形式は、ロケールと言語の設定によって決まります。Column は常に列型として評価されます。また、DATE()TIME()DATETIME() などの関数を使用すると、データ、両方の列、文字列リテラルを特定の型に変換できます。

日時をテキストとしてフォーマットする

  • TEXT()DateTimeDateTime と形式文字列を受け取り、テキスト表現を返します。

レガシー演算子

後方互換性のために、初期の AppSheet のリリースからサポートされている以下の関数構文もサポートしています。

  • @(_NOW)NOW() と同等です。
  • @(_TODAY)TODAY() と同等です。
  • @(_TIMENOW)TIMENOW() と同等です。

Dates を計算する例

  • TODAY() + 1: 現在の Date に 1 日(Number)を加算します。
  • TODAY() - 3: 現在の Date から 3 日(Number)を減算します。
  • [StartDate] + 7: StartDateDate)に 7 日(Number)を加算します。
  • TODAY() - (WEEKDAY(TODAY()) - 1): 前の日曜日の日付。
  • TODAY() - (WEEKDAY(TODAY()) - 2): 前の月曜日の日付。

Times を計算する例

  • TIMENOW() + 1: 現在の Time に 1 時間(Number)を加算します。
  • TIMENOW() + "003:03:00": 現在の Time に 3 時間 3 分(Duration)を加算します。
  • TIMENOW() - "003:03:00": 現在の Time から 3 時間 3 分(Duration)を減算します。

DateTimes を計算する例

  • NOW() + 1: 現在の DateTime に 1 日(Number)を加算します。
  • NOW() - 3: 現在の DateTime から 3 日(Number)を減算します。
  • [TargetDateTime] + "012:59:00": DateTime 値に 12 時間 59 分(Duration)を加算します。
  • [TargetDate] + ([TargetTime] - "00:00:00"): Date 値と Time 値から DateTime 値を作成します。

Durations を計算する例

  • TIMENOW() - "12:30:00": 現在の Time と午後 12:30(Time)の間の Duration
  • NOW() - "03:15:30": 現在の Time と 1899 年 12 月 30 日(何も指定されていない場合は、デフォルトで Date)午前 3:15:30(Time)の間の Duration
  • TODAY() - "12/30/2001": 現在の Date と 2001 年 12 月 30 日(Date)の間の Duration
  • [EndDate] - [StartDate]: StartDateDate)の午前 0 時と EndDateDate)の午前 0 時の間の Duration
  • IF(([StopWhen] > [StartWhen]), ([StopWhen] - [StartWhen]), (([StopWhen] + 24) - [StartWhen])): StartWhenStopWhen(2 つの DateTime 値)の間の DurationIF() もご確認ください。

Days、Months、Years で Durations を計算する例

  • HOUR(TODAY() - [TargetDate]) / 24: 今日の日付と TargetDate 列に指定した Date 値の間の日数。
  • ((YEAR([EndDate]) - YEAR([StartDate]))): 開始日と終了日の間の年数。
  • ((((YEAR([EndDate]) - YEAR([StartDate])) * 12) + MONTH([EndDate])) - MONTH([StartDate])): 開始日と終了日の間の月数。

Dates、Times、DateTimes を比較する例

  • (TODAY() - [When]) = 7: When 列値の Date または DateTime 値が、今日の Date のちょうど 7 日前かどうかを示す Yes/No 値。
  • (EOMONTH([When], 0) = EOMONTH(TODAY(), 0)): When 列値の Date または DateTime 値が今日の日付と同じ月に含まれるかどうかを示す Yes/No 値。関連情報: EOMONTH(), TODAY()
  • ([When] - TODAY()) = 7: When 列値の Date または DateTime 値が今日の Date のちょうど 7 日後かどうかを示す Yes/No 値。
  • AND([OrderDateTime] >= [StartDateTime], [OrderDateTime] <= [EndDateTime]): OrderDateTime 列の DateTime 値が StartDateTimeEndDateTime 列値の間にあるかどうかを示す Yes/No 値。関連情報: AND()

  • AND([OrderDate] >= [StartDate], [OrderDate] <= [EndDate]): OrderDate 列の Date 値が StartDateEndDate 列値の間にあるかどうかを示す Yes/No 値。関連情報: AND()
  • AND(([When] >= (TODAY() - 7)), ([When] <= TODAY())): When 列の Date または DateTime 値が過去 7 日以内かどうかを示す Yes/No 値。関連情報: AND()
  • TODAY() > ([TargetWhen] + 1): TargetWhen 列の Date または DateTime 値が過去 1 日よりも前かどうかを示す Yes/No 値。
  • [Timestamp] > (NOW() - 1): Timestamp 列の DateTime 値が現在の日時から 24 時間以内かどうかを示す Yes/No 値。
  • [OrderDateTime] >= (NOW() - "001:30:00") OrderDateTime 列の DateTime 値が現在の DateTime から 1 時間 30 分以内かどうかを示す Yes/No 値。
  • IN(MINUTE([_THIS] - "00:00:00"), LIST(0, 15, 30, 45)): 現在の列の DateTime 値または Time 値が 15 分刻みの時刻(つまり、0 分、15 分、30 分、45 分)に当たるかどうかを示す Yes/No 値。関連情報: IN()LIST()

スケジューリングの例

  • AND((TODAY() >= DATE("01/01/2021")),
    (TODAY() <= DATE("12/31/2021")),
    (MOD(HOUR(TODAY()- DATE("01/01/2021"))/24, 15) = 0))
    : スケージュールされた定期イベントの Yes/No 値。1 行目の DATE 値はスケージュールされた定期イベントの開始日を指定します。2 行目の DATE 値はスケージュールされた定期イベントの最終日を指定します。3 行目の DATE 値はスケージュールされた定期イベントが最初にトリガーされる日付を指定します。通常、1 行目と 3 行目の DATE 値は同じはずですが、3 行目に少し遅い DATE 値を指定することで、少し遅い日付でスケージュールされた定期イベントをトリガーすることもできます。3 行目の値 15 は、3 行目で指定した Date から 15 日毎にスケージュールされた定期イベントをトリガーすることを指定します。

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
メインメニュー
18387892717827526448
true
ヘルプセンターを検索
false
true
true
true
false
false
false
false
false