在MySQL中操作日期和时间_MySQL
bitsCN.com
摘要:日期和时间函数对建立一个站点是非常有用的。站点的主人往往对一个表中的数据何时被更新感兴趣。通过日期和时间函数,你可以在秒级跟踪一个表的改变。
日期和时间函数对建立一个站点是非常有用的。站点的主人往往对一个表中的数据何时被更新感兴趣。通过日期和时间函数,你可以在秒级跟踪一个表的改变。
日期和时间类型是DATETIME、DATE、TIMESTAMP、TIME和YEAR。这些的每一个都有合法值的一个范围,而“零”当你指定确实不合法的值时被使用。注意,MySQL允许你存储某个“不严格地”合法的日期值,例如1999-11-31,原因我们认为它是应用程序的责任来处理日期检查,而不是SQL服务器。为了使日期检查更“快”,MySQL仅检查月份在0-12的范围,天在0-31的范围。上述范围这样被定义是因为MySQL允许你在一个DATE或DATETIME列中存储日期,这里的天或月是零。这对存储你不知道准确的日期的一个生日的应用程序来说是极其有用的,在这种情况下,你简单地存储日期象1999-00-00或1999-01-00。(当然你不能期望从函数如DATE_SUB()或DATE_ADD()得到类似以这些日期的正确值)。
返回当前日期和时间
通过函数GETDATE(),你可以获得当前的日期和时间。例如,
CURDATE() 返回当前日期
CURRENT_DATE
以YYYY-MM-DD或YYYYMMDD格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。
mysql> select CURDATE();
+------------+
| CURDATE() |
+------------+
| 2001-02-20 |
+------------+
mysql> select CURDATE() + 0;
+-------------+
| CURDATE()+0 |
+-------------+
| 20010220 |
+-------------+
CURTIME() 返回当前时间
以HH:MM:SS或HHMMSS格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。
mysql> select CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 10:42:38 |
+-----------+
mysql> select CURTIME() + 0;
+-------------+
| CURTIME()+0 |
+-------------+
| 104525 |
+-------------+
NOW() 返回当前时期和时间
NOW()以YYYY-MM-DD HH:MM:SS的格式或者YYYYMMDDHHMMSS的格式返回日期和时间值,取决于上下文。
mysql>select now();
+---------------------+
| now() |
+---------------------+
| 2001-02-20 10:45:57 |
+---------------------+
mysql>select now()+0;
+----------------+
| now()+0 |
+----------------+
| 20010220105635 |
+----------------+
这些得到当前日期和时间的函数,对于日期和时间的计算很方便,尤其是计算一个时间到现在的时间差。例如,在pet表中,我们以天为单位计算宠物的年龄:
mysql> SELECT name,CURDATE()-birth FROM pet;
+----------+-----------------+
| name | CURDATE()-birth |
+----------+-----------------+
| Fluffy | 80016 |
| Claws | 69903 |
| Buffy | 119707 |
| Chirpy | 29309 |
| Fang | 109393 |
| Bowser | 109389 |
| Whistler | 39011 |
| Slim | 49791 |
| Puffball | 19890 |
+----------+-----------------+
自动记录数据的改变时间
TIMESTAMP列类型提供一种类型,TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果你有多个TIMESTAMP列,只有第一个自动更新。
自动更新第一个TIMESTAMP列在下列任何条件下发生:
列没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
列没有明确地在一个UPDATE语句中指定且一些另外的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)
你明确地设定TIMESTAMP列为NULL.
除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
例如,创建如下的表:
mysql> CREATE TABLE student
-> (
-> id int,
-> name char(16),
-> english tinyint,
-> chinese tinyint,
-> history tinyint,
-> time timestamp
-> );
向表中插入记录,可以查看效果:
mysql> INSERT student(id,name,englisht,Chinese,history) VALUES(11,”Tom”,66,93,67);
查看记录的存储情况:
mysql> SELECT * FROM student;
+------+---------+---------+---------+---------+----------------+
| id | name | english | chinese | history | time |
+------+---------+---------+---------+---------+----------------+
| 11 | Tom | 66 | 93 | 67 | 20010220123335 |
+------+---------+---------+---------+---------+----------------+
你可以看到time列纪录下了数据录入时的时间值。如果你更新改记录,在查看操作的结果:
mysql> UPDATE student SET english=76 WHERE id=11;
mysql> SELECT * FROM student;
+------+------+---------+---------+---------+----------------+
| id | name | english | chinese | history | time |
+------+------+---------+---------+---------+----------------+
| 11 | Tom | 76 | 93 | 67 | 20010220125736 |
+------+------+---------+---------+---------+----------------+
可以清楚的看到,time列的时间被自动更改为修改记录的时间。
有时候你希望不更改任何值,也能打到修改TIMESTAMP列的值,这时只要设置该列的值为NULL,MySQL就可以自动更新TIMESTAMP列的值:
mysql> UPDATE student SET time=NULL WHERE id=11;
mysql> select * from student where id=11;
+------+------+---------+---------+---------+----------------+
| id | name | english | chinese | history | time |
+------+------+---------+---------+---------+----------------+
| 11 | Tom | 76 | 93 | 67 | 20010220130517 |
+------+------+---------+---------+---------+----------------+
通过明确地设置希望的值,你可以设置任何TIMESTAMP列为不同于当前日期和时间的值,即使对第一个TIMESTAMP列也是这样。例如,如果,当你创建一个行时,你想要一个TIMESTAMP被设置到当前的日期和时间,但在以后无论何时行被更新时都不改变,你可以使用这样使用:
让MySQL在行被创建时设置列,这将初始化它为当前的日期和时间。
当你执行随后的对该行中其他列的更改时,明确设定TIMESTAMP列为它的当前值。
例如,当你在修改列时,可以把原有的值付给TIMESTAMP列:
mysql> UPDATE student SET english=66,time=time WHERE id=11;
mysql> select * from student where id=11;
+------+------+---------+---------+---------+----------------+
| id | name | english | chinese | history | time |
+------+------+---------+---------+---------+----------------+
| 11 | Tom | 66 | &nb bitsCN.com

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











Douyin 플랫폼에서는 많은 사용자가 레벨 인증을 받기를 열망하고 있으며 레벨 10 표시등은 Douyin에 대한 사용자의 영향력과 인식을 보여줍니다. 이 기사에서는 사용자가 프로세스를 더 잘 이해할 수 있도록 Douyin의 레벨 10 라이트 보드 가격과 이 레벨에 도달하는 데 걸리는 시간을 자세히 살펴보겠습니다. 1. 레벨 10 Douyin 라이트 사인의 가격은 얼마입니까? Douyin의 10단계 전광판 가격은 시장 변동과 수요 공급에 따라 달라질 수 있으며, 일반적인 가격은 수천 위안에서 만 위안까지 다양합니다. 이 가격에는 주로 조명 사인 자체 비용과 가능한 서비스 수수료가 포함됩니다. 사용자는 Douyin의 공식 채널이나 제3자 서비스 대행사를 통해 레벨 10 조명 간판을 구매할 수 있지만, 허위 또는 사기 거래를 피하기 위해 구매 시 법적 채널에 주의해야 합니다. 2. 레벨 10 팬사인을 만드는데 며칠이 걸리나요? 레벨 10 신호등에 도달하세요

Linux는 시스템 시간을 재설정할 수 있습니다. 1. date 명령을 사용하여 시간을 확인합니다. 2. "yum install ntp" 명령을 사용하여 ntp를 설치합니다. 3. "ntpdate -u ntp.api.bz"를 사용합니다. " 네트워크 시간을 구현하는 명령입니다. 동기화만 하면 됩니다.

최근 몇 년 동안 Go 언어는 점점 더 많은 개발자의 선택이 되었습니다. 그러나 다른 프로그래밍 언어에 비해 Go 언어의 컴파일 속도는 충분히 빠르지 않습니다. 많은 개발자들이 Go 프로그램을 컴파일할 때 다음과 같은 문제에 직면하게 됩니다. Go 프로그램을 컴파일하는 데 시간이 더 오래 걸리는 이유는 무엇입니까? 이 기사에서는 이 문제를 여러 측면에서 살펴볼 것입니다. Go 언어의 컴파일러 아키텍처 Go 언어의 컴파일러 아키텍처는 프론트엔드, 미들 레이어, 백엔드의 3단계 설계를 채택합니다. 프론트 엔드는 소스 코드를 Go 언어의 중간 코드로 변환하는 역할을 담당하며 중간 계층은

생활과 지식 공유가 가득한 플랫폼 샤오홍슈를 통해 점점 더 많은 창작자들이 자유롭게 자신의 의견을 표현할 수 있게 되었습니다. Xiaohongshu에 대한 관심과 좋아요를 더 많이 얻으려면 콘텐츠의 질뿐만 아니라 작품을 출판하는 시기도 중요합니다. 그렇다면 Xiaohongshu의 작품 출판 시간은 어떻게 설정합니까? 1. 소홍서 작품 출판 시기는 어떻게 정하나요? 1. 사용자의 활동시간을 이해한다. 먼저 Xiaohongshu 사용자의 활동시간을 명확히 할 필요가 있다. 일반적으로 오후 8시부터 10시까지와 주말 오후는 사용자 활동이 많은 시간입니다. 그러나 이 기간은 잠재고객 세그먼트 및 지역과 같은 요인에 따라 달라질 수도 있습니다. 따라서 사용자의 활동 기간을 더 잘 파악하기 위해서는 그룹별 행동 습관에 대한 보다 자세한 분석을 수행하는 것이 좋습니다. 사용자의 삶을 이해함으로써

플레이어는 Elden's Circle에서 플레이할 때 게임의 주요 줄거리를 경험하고 게임 성과를 수집할 수 있습니다. 많은 플레이어는 Elden's Circle을 클리어하는 데 시간이 얼마나 걸리는지 모릅니다. 엘든 링을 클리어하는데 얼마나 걸리나요? 답변: 30시간. 1. 이 30시간 통관시간은 마스터급 스피드패스를 의미하지는 않지만, 많은 과정을 생략하기도 합니다. 2. 더 나은 게임 경험을 원하거나 전체 줄거리를 경험하고 싶다면 반드시 지속 시간에 더 많은 시간을 할애해야 합니다. 3. 모두 모으는 데에는 약 100~120시간 정도 소요됩니다. 4. 본선만 타고 BOSS 브러싱을 하면 50~60시간 정도 소요됩니다. 5. 모든 것을 경험하고 싶다면: 기본 시간 150시간.

PHP를 사용하여 시간에서 시, 분, 초를 제거하는 방법: 1. PHP 샘플 파일을 만듭니다. 2. strtotime 함수를 사용하여 날짜와 시간을 타임스탬프로 변환합니다. 3. 날짜 함수를 사용하여 날짜 또는 시간 형식을 지정합니다. 시, 분, 초를 제거합니다.

Linux 파일 시간 보기 기술에 대한 자세한 설명 Linux 시스템에서 파일 시간 정보는 파일 관리 및 변경 사항 추적에 매우 중요합니다. Linux 시스템은 액세스 시간(atime), 수정 시간(mtime), 변경 시간(ctime)이라는 세 가지 주요 시간 속성을 통해 파일 변경 정보를 기록합니다. 이 문서에서는 이 파일 시간 정보를 보고 관리하는 방법을 자세히 설명하고 특정 코드 예제를 제공합니다. 1. ls 명령과 -l 매개변수를 함께 사용하여 파일 목록을 확인하여 파일 시간 정보를 확인합니다.

Python에서 시간 및 날짜 모듈을 사용하는 방법 소개: 프로그래밍에서 시간과 날짜를 처리하는 것은 매우 일반적인 작업입니다. Python은 강력한 시간 및 날짜 모듈을 제공하여 시간 및 날짜 작업을 더 쉽고 편리하게 만듭니다. 이 기사에서는 Python의 시간 및 날짜 모듈을 소개하고 독자가 이를 더 잘 이해하고 적용할 수 있도록 구체적인 코드 예제를 제공합니다. 1. 시간 및 날짜 모듈 소개 Python에 내장된 시간 및 날짜 모듈은 datetime 모듈을 먼저 소개해야 합니다.
