1-4.ᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏ
25119 ワード
1.時刻/日付に関する関数
関数の説明CURRENT DATE、CURRDATEは現在の日付CURRENT TIME、CURTIMEは現在の時刻CURRENT TIMESTAMP、NOWは現在の時刻と日付を返します
フォーマット説明%Y年4位%y年2位%M月英文%m月数字%D日英文(1、2、3 rd...)%d,%e天数字(01~31)%Thh:mm:ss%rhh:mm:ssAM/PM%H,%k時(~23)%h,%l時(~12)%i分%s,%s秒%pAM/PM
フォーマット説明IF(条件,T,F)条件が真であればTを返し,偽であればFを返す
関数の説明CURRENT DATE、CURRDATEは現在の日付CURRENT TIME、CURTIMEは現在の時刻CURRENT TIMESTAMP、NOWは現在の時刻と日付を返します
SELECT CURDATE(), CURTIME(), NOW();
関数の説明に従ってDATE文字列の作成日TIME文字列の作成時間SELECT
'2021-6-1' = '2021-06-01',
DATE('2021-6-1') = DATE('2021-06-01'),
'1:2:3' = '01:02:03',
TIME('1:2:3') = TIME('01:02:03');
SELECT
'2021-6-1 1:2:3' = '2021-06-01 01:02:03',
DATE('2021-6-1 1:2:3') = DATE('2021-06-01 01:02:03'),
TIME('2021-6-1 1:2:3') = TIME('2021-06-01 01:02:03'),
DATE('2021-6-1 1:2:3') = TIME('2021-06-01 01:02:03'),
DATE('2021-6-1') = DATE('2021-06-01 01:02:03'),
TIME('2021-6-1 1:2:3') = TIME('01:02:03');
SELECT * FROM Orders
WHERE
OrderDate BETWEEN DATE('1997-1-1') AND DATE('1997-1-31');
関数説明YEARが指定したDATEEME値の年度はMONTHNAMEが指定したDATEEME値の月はMONTHが指定したDATEEME値の月はWEEKAYが指定したDATEEME値の週は値(月:0)DAYNAMEが指定したDATEEME値の週はDAYOFMONTH、DAYが指定した日付値の日は日(日)を返しますSELECT
OrderDate,
YEAR(OrderDate) AS YEAR,
MONTHNAME(OrderDate) AS MONTHNAME,
MONTH(OrderDate) AS MONTH,
WEEKDAY(OrderDate) AS WEEKDAY,
DAYNAME(OrderDate) AS DAYNAME,
DAY(OrderDate) AS DAY
FROM Orders;
SELECT
OrderDate,
CONCAT(
CONCAT_WS(
'/',
YEAR(OrderDate), MONTH(OrderDate), DAY(OrderDate)
),
' ',
UPPER(LEFT(DAYNAME(OrderDate), 3))
)
FROM Orders;
SELECT * FROM Orders
WHERE WEEKDAY(OrderDate) = 0;
関数は、HOURが所与のDATETIMEを返したときにMINUTEが所与のDATETIMEを返した分を返し、SECONDが所与のDATETIMEを返した秒を返します.SELECT
HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());
関数説明ADDDATE、DATE ADD時間/日付プラスSUBDATE、DATE SUB時間/日付マイナスSELECT
ADDDATE('2021-06-20', INTERVAL 1 YEAR),
ADDDATE('2021-06-20', INTERVAL -2 MONTH),
ADDDATE('2021-06-20', INTERVAL 3 WEEK),
ADDDATE('2021-06-20', INTERVAL -4 DAY),
ADDDATE('2021-06-20', INTERVAL -5 MINUTE),
ADDDATE('2021-06-20 13:01:12', INTERVAL 6 SECOND);
SELECT
OrderDate,
ADDDATE(OrderDate, INTERVAL 1 YEAR),
ADDDATE(OrderDate, INTERVAL -2 MONTH),
ADDDATE(OrderDate, INTERVAL 3 WEEK),
ADDDATE(OrderDate, INTERVAL -4 DAY),
ADDDATE(OrderDate, INTERVAL -5 MINUTE)
FROM Orders;
関数説明DATE DIFF 2時間/日付間の日数TIME DIFF 2時間/日付間の時間差SELECT
OrderDate,
NOW(),
DATEDIFF(OrderDate, NOW())
FROM Orders;
SELECT
TIMEDIFF('2021-06-21 15:20:35', '2021-06-21 16:34:41');
SELECT * FROM Orders
WHERE
ABS(DATEDIFF(OrderDate, '1996-10-10')) < 5;
関数説明LAST DAY当月末日SELECT
OrderDate,
LAST_DAY(OrderDate),
DAY(LAST_DAY(OrderDate)),
DATEDIFF(LAST_DAY(OrderDate), OrderDate)
FROM Orders;
関数の説明指定したフォーマットを返すDATE FORMAT時間/日付フォーマット説明%Y年4位%y年2位%M月英文%m月数字%D日英文(1、2、3 rd...)%d,%e天数字(01~31)%Thh:mm:ss%rhh:mm:ssAM/PM%H,%k時(~23)%h,%l時(~12)%i分%s,%s秒%pAM/PM
SELECT
DATE_FORMAT(NOW(), '%M %D, %Y %T'),
DATE_FORMAT(NOW(), '%y-%m-%d %h:%i:%s %p'),
DATE_FORMAT(NOW(), '%Y년 %m월 %d일 %p %h시 %i분 %s초');
SELECT REPLACE(
REPLACE(
DATE_FORMAT(NOW(), '%Y년 %m월 %d일 %p %h시 %i분 %초'),
'AM', '오전'
),
'PM', '오후'
)
関数の説明STR TO DATE(S,F)SをF形式で解析して日時を作成するSELECT
DATEDIFF(
STR_TO_DATE('2021-06-04 07:48:52', '%Y-%m-%d %T'),
STR_TO_DATE('2021-06-01 12:30:05', '%Y-%m-%d %T')
),
TIMEDIFF(
STR_TO_DATE('2021-06-04 07:48:52', '%Y-%m-%d %T'),
STR_TO_DATE('2021-06-01 12:30:05', '%Y-%m-%d %T')
);
SELECT
OrderDate,
DATEDIFF(
STR_TO_DATE('1997-01-01 13:24:35', '%Y-%m-%d %T'),
OrderDate
),
TIMEDIFF(
STR_TO_DATE('1997-01-01 13:24:35', '%Y-%m-%d %T'),
STR_TO_DATE(CONCAT(OrderDate, ' ', '00:00:00'), '%Y-%m-%d %T')
)
FROM Orders;
2.その他の関数フォーマット説明IF(条件,T,F)条件が真であればTを返し,偽であればFを返す
SELECT IF (1 > 2, '1는 2보다 크다.', '1은 2보다 작다.');
💡 より複雑な条件はCASE文を使用します.SELECT
CASE
WHEN -1 > 0 THEN '-1은 양수다.'
WHEN -1 = 0 THEN '-1은 0이다.'
ELSE '-1은 음수다.'
END;
SELECT
Price,
IF (Price > 30, 'Expensive', 'Cheap'),
CASE
WHEN Price < 20 THEN '저가'
WHEN Price BETWEEN 20 AND 30 THEN '일반'
ELSE '고가'
END
FROM Products;
フォーマット説明IFNULL(A,B)AがNULLの場合出力BSELECT
IFNULL('A', 'B'),
IFNULL(NULL, 'B');
Reference
この問題について(1-4.ᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏᄏ), 我々は、より多くの情報をここで見つけました https://velog.io/@sshin/MySQL-1-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol