mysql 날짜에는 어떤 유형이 사용됩니까?
5가지 유형이 있습니다. 1. YEAR는 연도를 나타내는 데 사용되며 형식은 "YYYY"입니다. 2. TIME은 시간 정보만 필요한 값에 사용되며 형식은 "HH:MM:SS"입니다. 3. DATE, 날짜 값만 필요한 경우 형식은 "YYYY-MM-DD"입니다. 4. DATETIME, 날짜 및 시간 정보를 모두 포함해야 하는 값에 사용되며 형식은 "YYYY- MM-DD HH:MM:SS"; 5. TIMESTAMP , DATETIME과 유사하며 날짜 및 시간 정보를 모두 포함해야 하는 값에 사용됩니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
MySQL에는 YEAR, TIME, DATE, DTAETIME, TIMESTAMP 등 날짜를 나타내는 여러 데이터 유형이 있습니다.
이름을 입력하세요 | 날짜 형식 | 기간 | 저장 공간 요구 사항 |
---|---|---|---|
YEAR | YYYY | 1901 ~ 2155 | 1바이트 |
시간 | HH:MM:SS | -838:59:59 ~ 838:59:59 | 3바이트 |
DATE | YYYY-MM-DD | 1000-01-01 ~ 9999-12-3 | 3바이트 |
DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8바이트 |
타임스탬프 | YYYY-MM-DD HH:MM:SS | 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC | 4바이트 |
YEAR 유형
YEAR 유형은 연도를 나타내는 데 사용되는 싱글바이트 유형으로, 저장하는 데 1바이트만 필요합니다. YEAR는 다음과 같이 다양한 형식으로 지정할 수 있습니다.
YEAR는 '1901'부터 '2155'까지 4자리 문자열 또는 4자리 숫자 형식으로 표현됩니다. 입력 형식은 'YYYY' 또는 YYYY입니다. 예를 들어 '2010' 또는 2010을 입력하면 데이터베이스에 삽입되는 값은 2010이 됩니다.
YEAR는 '00'부터 '99'까지 2자리 문자열 형식으로 표현됩니다. '00'~'69', '70'~'99' 범위의 값은 각각 2000~2069, 1970~1999 범위의 YEAR 값으로 변환됩니다. '0'은 '00'과 같은 효과를 갖습니다. 범위를 벗어나서 입력된 값은 2000으로 변환됩니다.
YEAR는 1~99 범위의 2자리 숫자로 표현됩니다. 1~99, 70~99 범위의 값은 2001~2069, 1970~1970 범위의 YEAR 값으로 변환됩니다. 각각 1999. 여기서 값 0은 2000이 아닌 0000으로 변환됩니다.
팁: 두 자리 정수 범위는 두 자리 문자열 범위와 약간 다릅니다. 예를 들어, 3000년을 삽입하기 위해 독자는 숫자 형식 0을 사용하여 YEAR를 나타낼 수 있지만 실제로 데이터베이스에 삽입된 값은 예상한 대로 3000이 아닌 0000입니다. 문자열 형식의 '0' 또는 '00'만 3000으로 올바르게 해석될 수 있으며, 잘못된 YEAR 값은 0000으로 변환됩니다.
TIME 유형
TIME 유형은 시간 정보만 필요한 값에 사용되며 저장에는 3바이트가 필요합니다. 형식은 HH:MM:SS
입니다. HH는 시간, MM은 분, SS는 초를 나타냅니다.
TIME 유형의 값 범위는 -838:59:59~838:59:59입니다. 시간 부분이 이렇게 큰 이유는 TIME 유형이 하루 중 시간만 나타내는 데 사용할 수 없기 때문입니다( 24시간 미만이어야 함), 이벤트 이후의 특정 시간일 수도 있고 두 이벤트 사이의 시간일 수도 있습니다(24시간보다 길거나 음수일 수도 있음).
TIME 값은 아래와 같이 다양한 형식을 사용하여 지정할 수 있습니다.
'D HH:MM:SS' 형식 문자열입니다. 'HH:MM:SS', 'HH:MM', 'D HH' 또는 'SS'와 같은 "엄격하지 않은" 구문도 사용할 수 있습니다. 여기서 D는 일을 나타내며 0에서 34 사이의 값을 가질 수 있습니다. 데이터베이스에 삽입할 때 D는 시간으로 변환되어 "D*24+HH" 형식으로 저장됩니다.
'HHMMSS' 형식, 구분 기호가 없는 문자열 또는 의미 있는 시간을 가정한 HHMMSS 형식의 숫자 값입니다. 예를 들어 '101112'는 '10:11:12'로 이해되지만 '106112'는 불법이며(의미 없는 분 부분이 있음) 저장하면 00:00:00이 됩니다.
팁: TIME 열에 약식 값을 할당할 때 주의하세요: 콜론이 없으면 MySQL은 값을 해석할 때 가장 오른쪽 두 자리가 초를 나타내는 것으로 가정합니다. (MySQL은 TIME 값을 현재 시간이 아닌 과거 시간으로 해석합니다.) 예를 들어 독자는 '1112'와 1112가 11:12:00(즉, 11시 이후 12분)을 의미한다고 생각할 수 있지만 MySQL은 이를 00:11:12(즉, 11분 12초)로 해석합니다. ). 마찬가지로 '12'와 12는 00:00:12로 해석됩니다. 반대로 TIME 값에 콜론을 사용하면 확실히 오늘의 시간으로 간주된다. 즉, '11:12'는 00:11:12가 아닌 11:12:00을 의미한다.
Example
TIME 테이블에서 데이터 유형을 사용하는 예를 살펴보겠습니다.
먼저 id, name, start_at, end_at의 4개 열이 있는 테스트라는 새 테이블을 만듭니다. start_at 및 end_at 열의 데이터 유형은 TIME입니다.
CREATE TABLE tests ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, start_at TIME, end_at TIME );
두 번째로 테스트 테이블에 행을 삽입합니다.
INSERT INTO tests(name,start_at,end_at) VALUES('Test 1', '08:00:00','10:00:00');
셋째, 테스트 테이블에서 데이터를 쿼리합니다.
SELECT name, start_at, end_at FROM tests;
DATE 유형
DATE 유형은 시간 부분 없이 날짜 값만 필요한 경우에 사용되며 저장에 3바이트가 필요합니다. 날짜 형식은 'YYYY-MM-DD'이며, 여기서 YYYY는 연도, MM은 월, DD는 일을 나타냅니다.
DATE 유형 필드에 값을 할당할 때 DATE의 날짜 형식을 준수하는 한 문자열 유형 또는 숫자 유형 데이터를 사용하여 삽입할 수 있습니다. 아래와 같이
'YYYY-MM-DD' 또는 'YYYYMMDD' 문자 형식으로 표현되는 날짜이며, 값 범위는 '1000-01-01' ~ '9999-12-3'입니다. 예를 들어 '2015-12-31' 또는 '20151231'을 입력하면 데이터베이스에 삽입되는 날짜는 2015-12-31이 됩니다.
以 'YY-MM-DD' 或者 'YYMMDD' 字符串格式表示日期,在这里YY表示两位的年值。MySQL 解释两位年值的规则:'00~69' 范围的年值转换为 '2000~2069','70~99' 范围的年值转换为 '1970~1999'。例如,输入 '15-12-31',插入数据库的日期为 2015-12-31;输入 '991231',插入数据库的日期为 1999-12-31。
以 YYMMDD 数字格式表示的日期,与前面相似,00~69 范围的年值转换为 2000~2069,80~99 范围的年值转换为 1980~1999。例如,输入 151231,插入数据库的日期为 2015-12-31,输入 991231,插入数据库的日期为 1999-12-31。
使用 CURRENT_DATE 或者 NOW(),插入当前系统日期。
示例
我们来看看下面的例子。
首先,创建一个新表名为people,其中出生日期列为DATE数据类型。
CREATE TABLE people ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, birth_date DATE NOT NULL );
接下来,在people表中插入一行。
INSERT INTO people(first_name,last_name,birth_date) VALUES('John','Doe','1990-09-01');
然后,查询数据来自people表。
SELECT first_name, last_name, birth_date FROM people;
之后,使用两位数年份格式将数据插入people表中。
INSERT INTO people(first_name,last_name,birth_date) VALUES('Jack','Daniel','01-09-01'), ('Lily','Bush','80-09-01');
在第一行中,我们使用01(范围00-69)作为年份,因此MySQL将其转换为2001年。在第二行中,我们使用80(范围70-99)作为年份,MySQL将其转换为1980年。
最后,我们可以从people表中查询数据,以检查数据是否已根据转换规则进行转换。
SELECT first_name, last_name, birth_date FROM people;
DATETIME 类型
DATETIME 类型用于需要同时包含日期和时间信息的值,在存储时需要 8 个字节。日期格式为 'YYYY-MM-DD HH:MM:SS
',其中 YYYY 表示年,MM 表示月,DD 表示日,HH 表示小时,MM 表示分钟,SS 表示秒。
在给 DATETIME 类型的字段赋值时,可以使用字符串类型或者数字类型的数据插入,只要符合 DATETIME 的日期格式即可,如下所示。
以 'YYYY-MM-DD HH:MM:SS' 或者 'YYYYMMDDHHMMSS' 字符串格式表示的日期,取值范围为 '1000-01-01 00:00:00'~'9999-12-3 23:59:59'。例如,输入 '2014-12-31 05:05:05' 或者 '20141231050505’,插入数据库的 DATETIME 值都为 2014-12-31 05:05:05。
以 'YY-MM-DD HH:MM:SS' 或者 'YYMMDDHHMMSS' 字符串格式表示的日期,在这里 YY 表示两位的年值。与前面相同,'00~79' 范围的年值转换为 '2000~2079','80~99' 范围的年值转换为 '1980~1999'。例如,输入 '14-12-31 05:05:05',插入数据库的 DATETIME 为 2014-12-31 05:05:05;输入 141231050505,插入数据库的 DATETIME 为 2014-12-31 05:05:05。
以 YYYYMMDDHHMMSS 或者 YYMMDDHHMMSS 数字格式表示的日期和时间。例如,输入 20141231050505,插入数据库的 DATETIME 为 2014-12-31 05:05:05;输入 140505050505,插入数据库的 DATETIME 为 2014-12-31 05:05:05。
DATETIME值可以包括具有YYYY-MM-DD HH:MM:SS[.fraction]例如的格式的尾随小数秒到微秒 2015-12-20 10:01:00.999999。包含小数秒精度时,DATETIME值需要更多存储空间,如下表所示:
分数秒精度 | 存储 (字节) |
---|---|
0 | 0 |
1, 2 | 1 |
3, 4 | 2 |
5, 6 | 3 |
例如,2015-12-20 10:01:00.999999 需要8个字节,5个字节用于2015-12-20 10:01:00 ,3个字节用于.999999 而2015-12-20 10:01:00.9 只需要6个字节,1个字节用于小数秒精度。
TIMESTAMP 类型
TIMESTAMP 的显示格式与 DATETIME 相同,显示宽度固定在 19 个字符,日期格式为 YYYY-MM-DD HH:MM:SS,在存储时需要 4 个字节。但是 TIMESTAMP 列的取值范围小于 DATETIME 的取值范围,为 '1970-01-01 00:00:01'UTC~'2038-01-19 03:14:07'UTC。在插入数据时,要保证在合法的取值范围内。
提示:协调世界时(英:Coordinated Universal Time,法:Temps Universel Coordonné)又称为世界统一时间、世界标准时间、国际协调时间。英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称 UTC。
TIMESTAMP 与 DATETIME 除了存储字节和支持的范围不同外,还有一个最大的区别是:
DATETIME 在存储日期数据时,按实际输入的格式存储,即输入什么就存储什么,与时区无关;
而 TIMESTAMP 值的存储是以 UTC(世界标准时间)格式保存的,存储时对当前时区进行转换,检索时再转换回当前时区。即查询时,根据当前时区的不同,显示的时间值是不同的。
提示:如果为一个 DATETIME 或 TIMESTAMP 对象分配一个 DATE 值,结果值的时间部分被设置为 '00:00:00',因此 DATE 值未包含时间信息。如果为一个 DATE 对象分配一个 DATETIME 或 TIMESTAMP 值,结果值的时间部分被删除,因此DATE 值未包含时间信息。
MySQL TIMESTAMP以UTC值存储。但是,MySQL将DATETIME值存储为没有时区的值。我们来看下面的例子。
首先,将当前连接的时区设置为+00:00。
SET time_zone = '+00:00';
接下来,创建一个表命名timestamp_n_datetime是由两列组成:ts与dt用TIMESTAMP和DATETIME使用下面的语句类型。
CREATE TABLE timestamp_n_datetime ( id INT AUTO_INCREMENT PRIMARY KEY, ts TIMESTAMP, dt DATETIME );
然后,将当前日期和时间插入 timestamp_n_datetime 表的两个ts和每dt列 ,
INSERT INTO timestamp_n_datetime(ts,dt) VALUES(NOW(),NOW());
之后,从timestamp_n_datetime表中查询数据。
SELECT ts, dt FROM timestamp_n_datetime;
DATETIME和TIMESTAMP列中的值都相同。
最后,将连接的时区设置为+03:00并再次从timestamp_n_datetime表中查询数据。
SET time_zone = '+03:00'; SELECT ts, dt FROM timestamp_n_datetime;
如您所见,TIMESTAMP列中的值不同。这是因为当我们更改时区时,TIMESTAMP列以UTC格式存储日期和时间值,根据新时区调整列的值。
这意味着如果您使用TIMESTAMP数据存储日期和时间值,则在将数据库移动到位于不同时区的服务器时应认真考虑。
【相关推荐:mysql视频教程】
위 내용은 mysql 날짜에는 어떤 유형이 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 주로 데이터를 신속하고 안정적으로 저장하고 검색하는 데 사용됩니다. 작업 원칙에는 클라이언트 요청, 쿼리 해상도, 쿼리 실행 및 반환 결과가 포함됩니다. 사용의 예로는 테이블 작성, 데이터 삽입 및 쿼리 및 조인 작업과 같은 고급 기능이 포함됩니다. 일반적인 오류에는 SQL 구문, 데이터 유형 및 권한이 포함되며 최적화 제안에는 인덱스 사용, 최적화 된 쿼리 및 테이블 분할이 포함됩니다.

다음 단계를 통해 phpmyadmin을 열 수 있습니다. 1. 웹 사이트 제어판에 로그인; 2. phpmyadmin 아이콘을 찾고 클릭하십시오. 3. MySQL 자격 증명을 입력하십시오. 4. "로그인"을 클릭하십시오.

MySQL은 성능, 신뢰성, 사용 편의성 및 커뮤니티 지원을 위해 선택됩니다. 1.MYSQL은 효율적인 데이터 저장 및 검색 기능을 제공하여 여러 데이터 유형 및 고급 쿼리 작업을 지원합니다. 2. 고객-서버 아키텍처 및 다중 스토리지 엔진을 채택하여 트랜잭션 및 쿼리 최적화를 지원합니다. 3. 사용하기 쉽고 다양한 운영 체제 및 프로그래밍 언어를 지원합니다. 4. 강력한 지역 사회 지원을 받고 풍부한 자원과 솔루션을 제공합니다.

데이터베이스 및 프로그래밍에서 MySQL의 위치는 매우 중요합니다. 다양한 응용 프로그램 시나리오에서 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) MySQL은 웹, 모바일 및 엔터프라이즈 레벨 시스템을 지원하는 효율적인 데이터 저장, 조직 및 검색 기능을 제공합니다. 2) 클라이언트 서버 아키텍처를 사용하고 여러 스토리지 엔진 및 인덱스 최적화를 지원합니다. 3) 기본 사용에는 테이블 작성 및 데이터 삽입이 포함되며 고급 사용에는 다중 테이블 조인 및 복잡한 쿼리가 포함됩니다. 4) SQL 구문 오류 및 성능 문제와 같은 자주 묻는 질문은 설명 명령 및 느린 쿼리 로그를 통해 디버깅 할 수 있습니다. 5) 성능 최적화 방법에는 인덱스의 합리적인 사용, 최적화 된 쿼리 및 캐시 사용이 포함됩니다. 모범 사례에는 거래 사용 및 준비된 체계가 포함됩니다

Apache는 데이터베이스에 연결하여 다음 단계가 필요합니다. 데이터베이스 드라이버 설치. 연결 풀을 만들려면 Web.xml 파일을 구성하십시오. JDBC 데이터 소스를 작성하고 연결 설정을 지정하십시오. JDBC API를 사용하여 Connections, 명세서 작성, 매개 변수 바인딩, 쿼리 또는 업데이트 실행 및 처리를 포함하여 Java 코드의 데이터베이스에 액세스하십시오.

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

MySQL을 우아하게 설치하는 열쇠는 공식 MySQL 저장소를 추가하는 것입니다. 특정 단계는 다음과 같습니다. 피싱 공격을 방지하기 위해 MySQL 공식 GPG 키를 다운로드하십시오. MySQL 리포지토리 파일 추가 : rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum repository cache : yum 업데이트 설치 mysql : yum 설치 mysql-server startup startup mysql 서비스 : systemctl start mysqlctl start mysqlctl.
