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 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

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

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

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

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

1. PHP 개발 질문 및 답변 커뮤니티에서 Laravel MySQL VUE/React 조합의 첫 번째 선택은 생태계의 성숙과 높은 개발 효율로 인해 Laravel MySQL VUE/React 조합의 첫 번째 선택입니다. 2. 고성능은 캐시 (REDIS), 데이터베이스 최적화, CDN 및 비동기 큐에 의존해야합니다. 3. 입력 필터링, CSRF 보호, HTTPS, 비밀번호 암호화 및 권한 제어로 보안을 수행해야합니다. 4. 돈 선택적 광고, 회원 가입, 보상, 커미션, 지식 지불 및 기타 모델은 핵심은 커뮤니티 톤 및 사용자 요구에 맞는 것입니다.

PHP에서 환경 변수를 설정하는 세 가지 주요 방법이 있습니다. 1. php.ini를 통한 글로벌 구성; 2. 웹 서버 (예 : Apache의 Setenv 또는 nginx의 FastCGI_Param)를 통과했습니다. 3. PHP 스크립트에서 putenv () 함수를 사용하십시오. 그 중에서 Php.ini는 전역적이고 드물게 변화하는 구성에 적합하며 웹 서버 구성은 분리 해야하는 시나리오에 적합하며 Putenv ()는 임시 변수에 적합합니다. 영구 정책에는 구성 파일 (예 : php.ini 또는 웹 서버 구성)이 포함되어 있습니다. 보안 관리 민감한 정보는 하드 코딩을 피해야하며 사용하는 것이 좋습니다.

사용자 행동 데이터를 수집하려면 PHP를 통해 탐색, 검색, 구매 및 기타 정보를 데이터베이스에 기록하고이를 청소하고 분석하여 관심 선호도를 탐색해야합니다. 2. 권장 알고리즘 선택은 데이터 특성에 따라 결정되어야합니다. 컨텐츠, 협업 필터링, 규칙 또는 혼합 권장 사항에 따라; 3. 공동 작업 필터링을 PHP에서 구현하여 사용자 코사인 유사성을 계산하고 가장 가까운 이웃을 선택하고 가중 예측 점수를 선택하고 고급 제품을 추천합니다. 4. 성능 평가는 정확도, 리콜, F1 값 및 CTR, 전환율을 사용하고 A/B 테스트를 통해 효과를 확인합니다. 5. 콜드 스타트 문제는 제품 속성, 사용자 등록 정보, 대중 권장 사항 및 전문가 평가를 통해 완화 될 수 있습니다. 6. 성능 최적화 방법에는 캐시 된 추천 결과, 비동기 처리, 분산 컴퓨팅 및 SQL 쿼리 최적화가 포함되어 권장 효율성 및 사용자 경험이 향상됩니다.

적절한 PHP 프레임 워크를 선택할 때는 프로젝트 요구에 따라 포괄적으로 고려해야합니다. Laravel은 빠른 개발에 적합하며 엘로라 톰 및 블레이드 템플릿 엔진을 제공하며 데이터베이스 작동 및 동적 형태 렌더링에 편리합니다. Symfony는 더 유연하고 복잡한 시스템에 적합합니다. Codeigniter는 가볍고 고성능 요구 사항을 가진 간단한 응용 프로그램에 적합합니다. 2. AI 모델의 정확성을 보장하려면 고품질 데이터 교육, 합리적인 평가 지표 (예 : 정확도, 리콜, F1 값), 정기적 인 성능 평가 및 모델 튜닝과 같은 합리적인 평가 표시기 선택으로 시작하고 단위 테스트 및 통합 테스트를 통한 코드 품질을 보장하면서 입력 데이터를 지속적으로 모니터링하여 데이터 드리프트를 방지해야합니다. 3. 사용자 개인 정보 보호를위한 많은 조치가 필요합니다. AES와 같은 민감한 데이터를 암호화하고 저장합니다.

PHP는 프론트 엔드 입력, 데이터베이스 스토리지 및 외부 AI 서비스를 연결하는 데 책임이있는 지능형 고객 서비스에서 커넥터 및 브레인 센터의 역할을 수행합니다. 2.이를 구현할 때는 멀티 레이어 아키텍처를 구축해야합니다. 프론트 엔드는 사용자 메시지, PHP 백엔드 전처리 및 경로 요청을 수신하고 먼저 로컬 지식 기반과 일치하며 놓치고 OpenAI 또는 DialogFlow와 같은 외부 AI 서비스를 호출하여 지능적인 답장을 얻습니다. 3. 세션 관리는 컨텍스트 연속성을 보장하기 위해 PHP에 의해 MySQL 및 기타 데이터베이스에 기록됩니다. 4. 통합 AI 서비스는 guzzle을 사용하여 HTTP 요청을 보내고 Apikeys를 안전하게 저장하며 오류 처리 및 응답 분석을 잘 수행해야합니다. 5. 데이터베이스 디자인에는 세션, 메시지, 지식 기반 및 사용자 테이블이 포함되어야하며, 인덱스를 합리적으로 빌드하고 보안 및 성능을 보장하며 로봇 메모리를 지원해야합니다.

PHP 컨테이너가 자동 구성을 지원할 수 있도록 핵심은 CI (Continuous Integration) 프로세스를 구성하는 데 있습니다. 1. DockerFile을 사용하여 기본 이미지, 확장 설치, 종속성 관리 및 권한 설정을 포함하여 PHP 환경을 정의합니다. 2. Gitlabci와 같은 CI/CD 도구를 구성하고 .gitlab-ci.yml 파일을 통해 빌드, 테스트 및 배포 단계를 정의하여 자동 구성, 테스트 및 배포를 달성합니다. 3. PHPUNIT와 같은 테스트 프레임 워크를 통합하여 코드 변경 후 테스트가 자동으로 실행되도록합니다. 4. Kubernetes와 같은 자동 배포 전략을 사용하여 배포 .yaml 파일을 통해 배포 구성을 정의합니다. 5. Dockerfile 최적화 및 다단계 구조를 채택하십시오

비디오 컨텐츠 분석을 위해 AI를 결합한 PHP의 핵심 아이디어는 PHP가 백엔드 "접착제"역할을하고, 먼저 클라우드 스토리지에 비디오를 업로드 한 다음, ASYNCHRONOUS 분석을 위해 AI 서비스 (예 : Google CloudVideoAi 등)를 호출하도록하는 것입니다. 2. PHP는 JSON 결과를 구문 분석하고, 사람, 객체, 장면, 음성 및 기타 정보를 추출하여 지능형 태그를 생성하고 데이터베이스에 저장합니다. 3. 장점은 PHP의 성숙한 웹 생태계를 사용하여 기존 PHP 시스템이있는 프로젝트에 효율적으로 구현하는 데 적합한 AI 기능을 신속하게 통합하는 것입니다. 4. 일반적인 문제에는 대규모 파일 처리 (사전 서명 된 URL이있는 클라우드 스토리지로 직접 전송), 비동기 작업 (메시지 대기열 소개), 비용 제어 (주문형 분석, 예산 모니터링) 및 결과 최적화 (라벨 표준화)가 포함됩니다. 5. 스마트 태그는 시각적으로 크게 향상됩니다

독립적 인 PHP 작업 컨테이너 환경 구축은 Docker를 통해 구현할 수 있습니다. 특정 단계는 다음과 같습니다. 1. Docker 및 DockerCompose를 기초로 설치하십시오. 2. DockerFile 및 Crontab 파일을 저장하기위한 독립 디렉토리를 만듭니다. 3. PHPCLI 환경을 정의하고 CRON 및 필요한 확장을 설치하려면 dockerfile을 작성하십시오. 4. 타이밍 작업을 정의하기 위해 Crontab 파일을 작성하십시오. 5. docker-compose.yml 마운트 스크립트 디렉토리를 작성하고 환경 변수를 구성하십시오. 6. 컨테이너를 시작하고 로그를 확인하십시오. 웹 컨테이너에서 타이밍 작업을 수행하는 것과 비교할 때 독립 컨테이너는 자원 격리, 순수한 환경, 강력한 안정성 및 쉬운 확장의 장점이 있습니다. 로깅 및 오류 캡처를 보장합니다
