クエリの表示日時
- select t1、t2 FROM time_val;
- SELECT DT FROM datetime_val; s
- SELECT CURTIME()、CURTIME(2)、CURTIME(6);(異なる形式で時刻と日付を表示)
- SELECT d、DATE_FORMAT(d、 '%M%d、%Y')FROM date_val;
- SELECT d、DATE_FORMAT(d、 '%M、%d、%Y')AS date FROM date_val;
フォーマット文字は
%Y年、4桁
%y年、2桁
%M完全な月(1月、12月)
%b月、最初の3文字(Jan..Dec)
%m月2桁(01..12)
%c月(1..12)
%d月の日数、2桁(01.31)
%e月日(1..31)
%W曜日(日曜〜土曜)
%r時間、12時間形式、AMまたはPMで終わる
%T時間、24時間形式
%H時間、2桁(00〜23)
%i分、2桁(00..59)
%s秒、2桁(00.59)
%%文字 "%" - SELECT dt、DATE_FORMAT(dt、 '%c /%e /%y%r')AS format1、DATE_FORMAT(dt、 '%M%e、%Y%T')AS format2 FROM datetime_val;
- SELECT dt、TIME_FORMAT(dt、 '%r')AS '12時間の時間 '、TIME_FORMAT(dt、'%T ')AS '24時間の時間' FROM datetime_val;
現在の日付または時刻を取得します
- SELECT CURDATE()、CURTIME()、NOW();
- INSERT INTO tsdemo(val)VALUES(5);
- INSERT INTO tsdemo(val、ts_both、ts_create、ts_update)VALUES(10、NULL、NULL、NULL);
- SELECT * FROM tsdemo;
- SELECT dt、DATE(dt)、TIME(dt)FROM datetime_val;
- SELECT dt、YEAR(dt)、DAYOFMONTH(dt)、HOUR(dt)、SECOND(dt)FROM datetime_val;
- SELECT d、DAYOFYEAR(d)FROM date_val;
- SELECT d、DAYNAME(d)、LEFT(DAYNAME(d)、3)FROM date_val;
- SELECT dt、DATE_FORMAT(dt、 '%Y')AS年、DATE_FORMAT(dt、 '%d')AS日、TIME_FORMAT(dt、 '%H')AS時間、TIME_FORMAT(dt、 '%s')AS秒FROM datetime_val;
- SELECT dt、DATE_FORMAT(dt、 '%Y-%m-%d')AS '日付部分'、TIME_FORMAT(dt、 '%T')AS '時間部分' FROM datetime_val;
合成日付または時刻の値
- MAKETIME(0,30,58)、MAKETIME(-5,0,11)を選択します。
- SELECT d、DATE_FORMAT(d、 '%Y-%m-01')FROM date_val;
- SELECT t1、TIME_FORMAT(t1、 '%H:%i:00')FROM time_val;
- SELECT d、CONCAT(YEAR(d)、 '-'、MONTH(d)、 '-01')FROM date_val;
- SELECT d、CONCAT(YEAR(d)、 '-'、LPAD(MONTH(d)、2、 '0')、 '-01')FROM date_val;
時間値と基本単位の間の変換
- SELECT t1、TIME_TO_SEC(t1)AS 'TIME to seconds'、SEC_TO_TIME(TIME_TO_SEC(t1))AS 'TIME to seconds to TIME' FROM time_val;
- SELECT t1、TIME_TO_SEC(t1)AS '秒'、TIME_TO_SEC(t1)/ 60 AS '分'、TIME_TO_SEC(t1)/(60 60)AS '時間'、TIME_TO_SEC(t1)/(24 60 * 60)AS '日のFROM time_val;
- ELECT dt、TIME_TO_SEC(dt)AS '秒の時間部分'、SEC_TO_TIME(TIME_TO_SEC(dt))AS '時間部分の時間' FROM datetime_val;
- SELECT d、TO_DAYS(d)AS 'DATE to days'、FROM_DAYS(TO_DAYS(d))AS 'DATE to days to DATE' FROM date_val;
- SELECT dt、TO_DAYS(dt) '日付部分の日数'、FROM_DAYS(TO_DAYS(dt))AS '日付部分の日付' FROM datetime_val;
- SELECT dt、UNIX_TIMESTAMP(dt)AS seconds、FROM_UNIXTIME(UNIX_TIMESTAMP(dt))AS timestamp FROM datetime_val;
- SELECT dt、UNIX_TIMESTAMP(dt)AS seconds、FROM_UNIXTIME(UNIX_TIMESTAMP(dt))AS timestamp FROM datetime_val;
- SELECT DATEDIFF(@ d1、@ d2)AS 'd1-@ d2'、DATEDIFF(@ d2、@ d1)AS 'd2-d1';
- SELECT TIMEDIFF(@ t1、@ t2)AS 't1-t2'、TIMEDIFF(@ t2、@ t1)AS 't2-t1';
時間、日付の加算と減算
- SET @ t1 = '12:00:00 '、@ t2 = '15:30:00';
- SELECT ADDTIME(@ t1、@ t2);
- SET @dt = '1984-03-01 12:00:00'、@ t = '12:00:00 ';
- SELECT ADDTIME(@ dt、@ t);
- SELECT CURDATE()、DATE_ADD(CURDATE()、INTERVAL 3 DAY);
- SELECT CURDATE()、DATE_ADD(CURDATE()、INTERVAL 1 WEEK);
- SELECT NOW()、DATE_ADD(NOW()、INTERVAL '3 4' DAY_HOUR);
- SELECT @d AS日付、FROM_DAYS(TO_DAYS(@d)+7)AS '日付+ 1週間'、FROM_DAYS(TO_DAYS(@d)-7)AS '日付-1週間';
年齢を計算する
- SELECT * FROM兄弟;
- SELECT name、birth、CURDATE()AS today、TIMESTAMPDIFF(YEAR、birth、CURDATE())AS 'age in years'、TIMESTAMPDIFF(MONTH、birth、CURDATE())AS 'age in months'兄弟;
- SELECT name、birth、 '1953-03-05' AS 'Franz''birth'、TIMESTAMPDIFF(YEAR、birth、 '1953-03-05')AS 'age in years'、TIMESTAMPDIFF(MONTH、birth、 '1953- 03-05 ')AS'月の年齢 'FROM兄弟WHERE name <>' Franz;
月の初日、末日、または月の日数を照会します
- SELECT d、DATE_SUB(d、INTERVAL DAYOFMONTH(d)-1 DAY)AS '月の最初' FROM date_val;
- SELECT d、LAST_DAY(d)AS '先月' FROM date_val;
- SELECT d、LAST_DAY(DATE_ADD(d、INTERVAL -1 MONTH))AS '前月の最後'、LAST_DAY(DATE_ADD(d、INTERVAL 1 MONTH))AS '翌月の最後' FROM date_val;
- SELECT d、DAYOFMONTH(LAST_DAY(d))AS '月の日数' FROM date_val;
サブストリング置換により日付を計算します
- SELECT d、DATE_FORMAT(d、 '%y-%m-01')AS '月の初日A'、CONCAT(YEAR(d)、 '-'、LPAD(MONTH(d)、2、 '0')、 '-01')AS '月の1日B' FROM date_val;
- SELECT CURDATE()、DATE_ADD(DATE_FORMAT(CURDATE()、 '%Y-12-25')、INTERVAL 2 YEAR)AS 'Christmas A'、DATE_FORMAT(DATE_ADD(CURDATE()、INTERVAL 2 YEAR)、 '%Y- 12-25 ')AS' Christmas B ';
週を計算する
- SELECT CURDATE()、DAYNAME(CURDATE());
- SET @first = DATE_SUB(@ d、INTERVAL DAYOFMONTH(@d)-1 DAY);
SELECT @d AS '開始日'、@ first as '月の最初の日付'、DAYNAME(@first)AS '月の最初の日'; - SELECT d、DAYNAME(d)AS日、DATE_ADD(d、INTERVAL 1-DAYOFWEEK(d)DAY)AS日曜日、DATE_ADD(d、INTERVAL 7 -DAYOFWEEK(d)DAY)AS土曜日FROM date_val;
- SET @ target = DATE_SUB(DATE_ADD(CURDATE()、INTERVAL 4-DAYOFWEEK(CURDATE())DAY)、INTERVAL 14 DAY);
SELECT CURDATE()、@ target、DAYNAME(@target);
ルニアンを計算する
- SELECT d、YEAR(d)%4 = 0 AS 'rule-of thumb test'、(YEAR(d)%4 = 0)AND((YEAR(d)%100 <> 0)OR(YEAR(d)% 400 = 0))AS 'complete test' FROM date_val;
- SET @ d1 = '2014-04-13'、@ d2 = '2016-04-13';
SELECT DAYOFYEAR(DATE_FORMAT(@ d1、 '%Y-12-31'))AS 'days in 2014'、DAYOFYEAR(DATE_FORMAT(@ d2、 '%Y-12-31'))AS 'days in 2016';
ISO以外の形式の日付文字列
- SELECT d、CONCAT(YEAR(d)、 '-'、MONTH(d)、 '-01')FROM date_val;
- SELECT CONCAT(YEAR(d)、 '-')AS 'non-ISO'、DATE_ADD(CONCAT(YEAR(d)、 '-'、MONTH(d)、 '-01')、INTERVAL 0 DAY)AS 'ISO 1 '、CONCAT(YEAR(d)、'-'、MONTH(d)、'-01 ')+ INTERVAL 0 DAY AS' ISO 2 '、FROM_DAYS(TO_DAYS(CONCAT(YEAR(d)、'-'、MONTH (d)、 '-01'))))AS 'ISO 3'、STR_TO_DATE(CONCAT(YEAR(d)、 '-'、MONTH(d)、 '-01')、 '%Y-%m-%d ')AS' ISO 4 'FROM date_val;
時間特徴に基づくクエリ
- SELECT d FROM date_val WHERE d <'1990-01-01';
- select d FROM date_val WHERE d BETWEEN '1990-01-01' AND '1999-12-31';
- SELECT d FROM date_val WHERE d> = DATE_SUB(CURDATE()、INTERVAL 20 YEAR);