TRUNC(インターセプト)機能の使い方

TRUNC 関数は、Oracle で日付、時刻、または数値の精度を切り捨てるために使用されます。その構文は次のとおりです。

切片番号:

TRUNC(number [, precision])

で:

  • 数値は切り捨てられる数値を表します。

  • precision は切り捨ての精度を表します。負の数、整数、またはデフォルトで空にすることができます。正の数は小数点以下の桁数を保持することを意味し、負の数は小数点以下の桁数を切り捨てることを意味し、0 は整数部分を切り捨てることを意味します。

    ここではいくつかの例を示します。

SELECT TRUNC(12.345) FROM dual; -- 返回12
SELECT TRUNC(9.999, 2) FROM dual; -- 返回9.99
SELECT TRUNC(1234.5678, -2) FROM dual; -- 返回1200
SELECT TRUNC(1234.5678, 1) FROM dual; -- 返回1234.5

締切日

TRUNC(date [, format])

  • date は切り捨てられる日付/時刻を表します。
  • format は切り捨てられた結果の形式を表します。次の値のいずれかを指定できます: 'YYYY'、'YYY'、'YY'、'YEAR'、'MONTH'、'MON'、'MM'、'DY'、'DAY'、'HH24'、'HH12 、「HH」、「MI」、「SS」、「SSSSS」など。

ここではいくつかの例を示します。

select trunc(sysdate) from dual; -- 2023-08-04 今天的日期为2023-08-04
select trunc(sysdate, 'mm') from dual; -- 2023-08-01 返回当月第一天
select trunc(sysdate, 'MONTH') from dual;  -- 2023-08-01 返回当月第一天
select trunc(sysdate, 'yy') from dual; -- 2023-01-01 返回当年第一天
select trunc(sysdate, 'yyyy') from dual; -- 2023-01-01 返回当年第一天
SELECT TRUNC(SYSDATE, 'YYYY') FROM dual; -- 2023-01-01 返回当年第一天
select trunc(sysdate, 'dd') from dual; -- 2023-08-04 返回当前年月日
select trunc(sysdate, 'd') from dual; -- 2023-07-30 (星期天)返回当前星期的第一天,自己查下日历看下
select trunc(sysdate, 'day') from dual; -- 返回当前星期的第一天
select trunc(sysdate, 'hh') from dual; -- 2023-08-04 10:00:00 返回当前小时的开始时间 当前时间为10:15
SELECT TRUNC(SYSDATE, 'HH24') FROM dual; -- 返回当前小时的开始时间
select trunc(sysdate, 'mi') from dual; -- 2023-08-04 10:15:00 返回当前分钟的开始时间 TRUNC()函数没有秒的精确
SELECT TRUNC(SYSDATE, 'MI') FROM dual; -- 返回当前分钟的开始时间

TRUNC 関数は、Oracle と MySQL では異なる方法で使用される場合があることに注意してください。上記の例は、Oracle データベースにのみ適用されます。使用する場合、特定の構文と使用法については、使用しているデータベースのドキュメントを参照してください。

mysql には TRUNC 関数がないため、mysql に対応する記述方法をいくつか示します。

MySQL では、DATE_FORMAT 関数と STR_TO_DATE 関数を使用して、Oracle の TRUNC 関数と同様の関数を実現できます。以下に例を示します。

SELECT DATE_FORMAT(sysdate(), '%Y-%m-%d') from dual; -- 2023-08-04 返回当前年月日
SELECT DATE_FORMAT(sysdate(), '%Y-%m-01') from dual; -- 2023-08-01 返回当月第一天
SELECT DATE_FORMAT(sysdate(), '%Y-01-01') from dual; -- 2023-01-01 返回当年第一天

MySQL には、Oracle の TRUNC 関数に直接相当する関数がないことに注意してください。したがって、STR_TO_DATE を使用して文字列を日付に変換し、DATE_FORMAT 関数を使用して希望の日付形式を指定して切り捨てを行う必要があります。

もっと良い方法がある場合は、コメント欄にメッセージを残してください。

おすすめ

転載: blog.csdn.net/qq_44275015/article/details/132098089