ホームページ  >  記事  >  データベース  >  MySQL の日付と時刻のタイプとフォーマット方法は何ですか

MySQL の日付と時刻のタイプとフォーマット方法は何ですか

王林
王林転載
2023-06-02 22:49:045044ブラウズ

MySQL の日付と時刻のタイプとフォーマット方法は何ですか

#[1] MySQL の日付と時刻の型

MySQL では、日付、日時、時刻、年、およびタイムスタンプが一般的に使用される時刻型です

#データ型# #を表します#日付41000-01-019999-12-31 0000 -00-00日時81000-01-01 00:00:009999-12 - 31 23:59:590000-00-00 00:00: 00タイムスタンプ419700101080001 2038 年のいつか 31
占有バイト数 最小値 最大値 ゼロ値は
#0000000000000000 時間
-838:59: 59 838:59:59 00:00:00
1901 2155 0000

詳細説明

  • ##datetime : 時刻日付型。形式は YYYY-mm-dd HH:ii:ss です。 、表現範囲は 1000 ~ 9999 です。ただし、値はゼロです (0000-00-00 00:00:00;

  • date: 日付は datetime の日付部分です。

  • time: 指定された間隔の間の時間 (セグメント)、- から時々 (負の時間で表されます);

  • timestamp: 従来のタイムスタンプではなく (例: 14253685)、範囲は「1970-01-01 00:00:00」から 2037 です。形式は YYYY-mm-dd HH:ii:ss、形式は datetime;

  • year:yy と完全に一致します。 yyyy,yyyy の範囲は 1901 ~ 2155、yy の範囲は 1970 ~ 2069 です。

2 桁の年 (00 ~ 69 は 2000 ~ 2069 年を意味し、70 ~ 99 は 1970 ~ 1999 年を意味します)。アプリケーションが年のみを記録する必要がある場合、年は日付よりも多くのスペースを節約します

SQL ステートメントの例

create table my_date(
	d1 datetime,
	d2 date,
	d3 time,
	d4 timestamp,
	d5 year
)charset utf8;
desc my_date

以下の図に示すように、年のデフォルトは 4 桁、つまり YYYY です。タイムスタンプを空にすることはできません。デフォルト値では、新しいレコードの作成時および既存のレコードの変更時にこのデータ列が更新されます。

MySQL の日付と時刻のタイプとフォーマット方法は何ですか# 次のように複数のデータを挿入し、時間通りに差分分析を実行します:

insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','2015');
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-11:50:54','2015-09-28 11:51:08','2015');-- -11
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-211:50:54','2015-09-28 11:51:08','2015');-- -2 11
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','-2 11:50:54','2015-09-28 11:51:08','2015');-- -2过去两天
#year用69标识-2069
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','69');-- 69
#year用70标识-1970
insert into my_date VALUES('2015-09-28 11:50:36','2015-09-28','11:50:54','2015-09-28 11:51:08','70');-- 70

MySQL の日付と時刻のタイプとフォーマット方法は何ですか

##タイムスタンプ フィールドMySQL の日付と時刻のタイプとフォーマット方法は何ですか

デフォルトでは、現在のレコードが更新される限り、このフィールドは自動的に現在の時刻に更新されます。

update my_date set d1 = SYSDATE() where d5=69;
select * from my_date

では、MySQL は実際のタイムスタンプを取得できるのでしょうか?もちろん! MySQL の日付と時刻のタイプとフォーマット方法は何ですか

select UNIX_TIMESTAMP();

MySQL の日付と時刻のタイプとフォーマット方法は何ですかテスト例

4.1 現在時刻のクエリ

#
SELECT SYSDATE() from dual;

4.2 現在の時刻を上記の種類の列に挿入します。 MySQL の日付と時刻のタイプとフォーマット方法は何ですか

insert INTO `user` (name,number,date,datetime,timestamp,time,year)
VALUES (
'Loum',3,SYSDATE(),SYSDATE(),SYSDATE(),SYSDATE(),2016
);

4.3 datetime 型の長さビットmysql の数値 MySQL の日付と時刻のタイプとフォーマット方法は何ですか

は次のとおりです。通常、MySQL の日時型の長さはデフォルトで 0 になるように設計されています:

`work_time` datetime(0) DEFAULT NULL COMMENT '清收时间',
一般的な時刻形式は通常 2020- 08-29 12:52:16 、現在時刻が挿入されます。しかし、datetime(n) の n が 0 でない場合はどうなるでしょうか?

`work_time` datetime(2) DEFAULT NULL COMMENT '清收时间',
# datetime(n)中的n最大值为6
`work_time` datetime(6) DEFAULT NULL COMMENT '清收时间',

この時、MySQLでは次のように表示されます:

2020-08-29 12:52:16.01

2020-08-29 12:52 :16.014057

最後に小数点があり、小数点以下の数字が対応する数字に対応していることがわかります。これはナノ秒と呼ばれます。

要約は次のとおりです:

date
    : 日付のみ、時刻は含まれません;
  • datetime
  • : 時間と日付があります;
  • time
  • : 時間のみ、分と秒まで正確です;
  • timestamp
  • : タイムスタンプ、分と秒まで正確;
  • year
  • : 年、など2002として、2002-01-15と書かれていれば計算が行われ、挿入結果は1986
  • #[2] 日時型の書式

    ## DATE_FORMAT( ) 関数

date_format() 関数を使用して時刻を変換できます。

rreeee

date_format( ) 转换格式

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微秒
%H 小时 (00-23)
%h 小时 (01-12)
%I 小时 (01-12)
%i 分钟,数值(00-59)
%j 年的天 (001-366)
%k 小时 (0-23)
%l 小时 (1-12)
%M 月名
%m 月,数值(00-12)
%p AM 或 PM
%r 时间,12-小时(hh:mm:ss AM 或 PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间, 24-小时 (hh:mm:ss)
%U 周 (00-53) 星期日是一周的第一天
%u 周 (00-53) 星期一是一周的第一天
%V 周 (01-53) 星期日是一周的第一天,与 %X 使用
%v 周 (01-53) 星期一是一周的第一天,与 %x 使用
%W 星期名
%w 周的天 (0=星期日, 6=星期六)
%X 年,其中的星期日是周的第一天,4 位,与 %V 使用
%x 年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y 年,4 位
%y 年,2 位

str_to_date()函数

字符串转换为date:

str_to_date(
	'2016-12-15 16:48:40',
	'%Y-%m-%d %H:%i:%S'
)

以上がMySQL の日付と時刻のタイプとフォーマット方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。