MYSQL中int转换为date型
- 格式:doc
- 大小:44.50 KB
- 文档页数:11
如何在MySQL中处理日期和时间数据在数据库开发中,日期和时间是常见的数据类型,用于记录事件发生的日期和时间。
在MySQL中,有多种方法可以处理日期和时间数据,包括存储、计算和显示等方面的操作。
本文将介绍如何在MySQL中处理日期和时间数据,并给出一些实际应用的示例。
一、日期和时间的数据类型在MySQL中,提供了多种日期和时间的数据类型,常用的有DATE、TIME、DATETIME和TIMESTAMP等。
它们分别用于表示日期、时间、日期和时间的组合,以及时间戳等。
1. DATE类型DATE类型用于表示日期,格式为'YYYY-MM-DD',例如'2022-12-31'。
它有4个字节的存储空间,在MySQL中可以表示的日期范围为'1000-01-01'至'9999-12-31'。
2. TIME类型TIME类型用于表示时间,格式为'HH:MM:SS',例如'12:34:56'。
它有3个字节的存储空间,在MySQL中可以表示的时间范围为'-838:59:59'至'838:59:59'。
3. DATETIME类型DATETIME类型用于表示日期和时间的组合,格式为'YYYY-MM-DDHH:MM:SS',例如'2022-12-31 12:34:56'。
它有8个字节的存储空间,在MySQL中可以表示的日期范围为'1000-01-01 00:00:00'至'9999-12-31 23:59:59'。
4. TIMESTAMP类型TIMESTAMP类型也用于表示日期和时间的组合,格式和范围与DATETIME 类型相同。
不同之处在于,TIMESTAMP类型在存储时会自动转换为UTC时间,并以整数形式保存。
在使用时,会自动转换为当前时区的时间。
MySQL中的数据类型转换与处理方式MySQL是一种常用的关系型数据库管理系统,它使用不同的数据类型来存储和处理数据。
在实际的数据库应用中,数据类型转换和处理方式经常出现,对于程序员和数据库管理员而言,掌握MySQL中的数据类型转换与处理方式是非常重要的。
本文将探讨MySQL中的数据类型转换与处理方式,并提供一些实用的技巧和经验。
1. 数据类型转换基础数据类型转换是将一个数据类型的值转换为另一个数据类型的过程。
在MySQL中,主要有以下几种常见的数据类型:- 整型(int, bigint)- 浮点型(float, double)- 字符型(char, varchar)- 时间型(date, datetime, timestamp)2. 数据类型转换函数在MySQL中,可以使用一些内置的函数来进行数据类型转换。
以下是一些常用的函数:- CAST:将一个数据类型转换为另一个数据类型。
例如,使用CAST函数可以将一个整数转换为浮点数,或者将一个字符串转换为整数。
- CONVERT:与CAST函数类似,也可以进行数据类型转换。
不同之处在于,CONVERT函数可以指定一个更精确的数据类型转换格式。
- DATE_FORMAT:将一个时间型数据转换为字符串,并指定转换的格式。
例如,将一个时间戳转换为"年-月-日时:分:秒"的格式。
- CONCAT:将多个字符串拼接成一个字符串。
例如,可以使用CONCAT函数将两个字符串合并为一个字符串。
3. 处理NULL值在数据库中,NULL表示一个未知的或不适用的值。
当处理数据库中的空值时,需要注意一些特殊情况:- 使用IS NULL或IS NOT NULL来判断一个值是否为空。
- 使用COALESCE函数来处理空值。
COALESCE函数可以接受多个参数,返回第一个非空的参数值。
例如,COALESCE(a, b)将返回a,如果a为空则返回b。
- 使用IFNULL函数来处理空值。
MySQL⽇期格式化及字符串、date、毫秒互相转化1. DATE_FORMAT() 函数⽤于以不同的格式显⽰⽇期/时间数据。
DATE_FORMAT(date,format)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 位⽰例:date_format(base.plan_date, '%Y-%m-%d %H:%i:%s') >= date_format((#{paramsDto.beginDate}), '%Y-%m-%d %H:%i:%s') 2. unix_timestamp(⽇期,format)把⽇期转化为时间戳到秒的FROM_UNIXTIME(unix_timestamp,format) 把时间戳转化为⽇期格式3.当前时间 now()。
mysql与oracle之间的数据类型转换⼀、常见数据类型在MySQL与Oracle数据库中的表现形式说明mysql oracle变长字符串VARCHAR[0-65535]定义长度默认按字符长度计算,如果是GBK编码的汉字将占⽤2个字节VARCHAR2[1-4000]VARCHAR是VARCHAR2的同义词定义默认按字节长度计算整数TINYINT(-128-127)SMALLINT(-32768-32767)MEDIUMINT(-8388608-8388607)INT(-2147483648-2147483647)BIGINT(-9223372036854775808-9223372036854775807)⽆专⽤类型,TINYINT可以⽤NUMBER(3,0)代替SMALLINT可以⽤NUMBER(5,0)代替MEDUIMINT可以⽤NUMBER(7,0)代替INT可以⽤NUMBER(10,0)代替BIGINT可以⽤NUMBER(20,0)代替ORACLE中有SMALLINT,INT,INTEGER类型,不过这是NUMBER(38,0)的同义词数值类型DECIMAL[1-65[,0-30]]NUMERIC是DECIMAL的同义词NUMBER 可表⽰数范围: 1*10^-130⾄1*10^126NUMBER([1-38][,-84-127])DECIMAL、NUMERIC、DEC是NUMBER的同义词浮点型FLOAT(D,M)oracle10g开始增加BINARY_FLOAT类型10g以前⽆专⽤类型,可以⽤NUMBER 代替ORACLE中有FLOAT和REAL类型,不过这是NUMBER的同义词双精度浮点型DOUBLE(D,M)oracle10g开始增加BINARY_DOUBLE 类型10g以前⽆专⽤类型,可以⽤NUMBER 代替ORACLE中有DOUBLE PRECISION 类型,不过这是NUMBER的同义词位类型BIT(1-64)⽆⽇期类型DATE,3字节存储,只存储⽇期,没有时间,⽀持范围是[1000-01-01]⾄[9999-12-31]TIME,3字节存储,只存储时间,没有⽇期,⽀持范围是[-838:59:59]⾄[838:59:59]DATETIME,占8字节存储,可表⽰⽇期和时间,⽀持范围是[1000-01-01 00:00:00]⾄[9999-12-31 23:59:59]TIMESTAMP,占4字节存储,可表⽰⽇期和时间,范围是DATE类型7字节存储,可表⽰⽇期和时间,⽀持范围是[-4712-01-01 00:00:00]⾄[9999-12-31 23:59:59]可表⽰⽇期和时间,范围是[1970-01-01 00:00:00]⾄[2038-01-19 03:14:07]⾼精度⽇期5.6.4以前不⽀持⼩数秒精度5.6.4开始TIME,DATETIME,TIMESTAMP⽀持,最多可以6位⼩数秒,也就是微秒级别TIMESTAMP[0-9]占⽤空间7-11个字节,当⼩数秒精度为0时与DATE类型相同,⼩数秒最⾼精度可达9位,也就是纳精度年份YEAR,1字节存储,只存储年份,⽀持范围是[1901]⾄[2155]⽆对应类型,可以⽤NUMBER(3,0)代替CHAR[0-255],定义长度默认按字符长度计算,最⼤保存255字符CHAR[1-2000]定义默认按字节长度计算⽀持,⽤于数值类型不⽀持TINYTEXT 最⼤⽀持255个字节TEXT最⼤⽀持65535个字节MEDIUMTEXT最⼤⽀持16MB个字节LONGTEXT最⼤⽀持4GB字节字段不⽀持默认值⽀持(CLOB)oracle10g以前最⼤⽀持4GB个字节oracle10g开始最⼤⽀持4GB个数据块,数据块⼤⼩为2KB-32KBoracle还有⼀个LONG类型,是早期的存储⼤字符串类型,最⼤⽀持2GB字节,现已不推荐使⽤TINYBLOB 最⼤⽀持255个字节BLOB最⼤⽀持65535个字节MEDIUMBLOB最⼤⽀持16MB个字节LONGBLOB最⼤⽀持4GB字节字段不⽀持默认值⽀持(BLOB)oracle10g以前最⼤⽀持4GB个字节oracle10g开始最⼤⽀持4G个数据块,数据块⼤⼩为2KB-32KBoracle还有⼀个LONG RAW类型,是早期的存储⼆进制类型,最⼤⽀持2GB字节,现已不推荐使⽤BINARY(0-255),定长VARBINARY(0-65535),变长RAW(1-2000)ENUM(v1,v2,v3,...),最多65535个元素不⽀持SET(v1,v2,v3,...),最多64个元素不⽀持⽆,MYSQL可以对每个字段指定字符编码⽀持NCHAR(1-2000)NVARCHAR(1-4000)NCLOB不⽀持⽀持⽂件⼤⼩最⼤4GB⽂件名称最长255字符不⽀持⽀持不⽀持⽀持⽀持使⽤简单不⽀持⼀般使⽤SEQUENCE解决,⽤法与⾃增类型差别较⼤,使⽤较复杂,但能实现⾮常灵活的应⽤,包括字符⾃增主键、全局主键等等不⽀持函数和表达式TEXT和BLOB字段类型不⽀持默认值⽀持函数和表达式⽀持,例如,把emp表的id字段顺序放在name字段后⾯:alter table emp modify columnid varchar(20) after name;不⽀持,只能重建表或字段不⽀持11g⽀持,例:create table sales(id number,quantity number,=单价*数量不⽀持 quantity number,price number,amount GENERATED always as(quantity*price) virtual);INNODB 最⼤1000个字段所有字段总定义长度不能超过65535字节所有固定长度字段的总长度不超过半个数据块⼤⼩(数据块⼤⼩⼀般为16K)最⼤1000个字段⼆、MySQL与Oracle数据库常见数据类型对应关系编号ORACLE MYSQL注释1NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表⽰整型;MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不⼀样2Varchar2(n)varchar(n) 3Date DATATIME ⽇期字段的处理MYSQL⽇期字段分DATE和TIME两种,ORACLE⽇期字段只有DATE,包含年⽉⽇时分秒信息,⽤当前数据库的系统时间为 SYSDATE, 精确到秒,或者⽤字符串转换成⽇期型函数TO_DATE(‘2001-08-01','YYYY-MM-DD')年-⽉-⽇ 24⼩时:分钟:秒的格式YYYY-MM-DDHH24:MI:SS TO_DATE()还有很多种⽇期格式, 可以参看ORACLE DOC.⽇期型字段转换成字符串函数TO_CHAR(‘2001-08-01','YYYY-MM-DD HH24:MI:SS')⽇期字段的数学运算公式有很⼤的不同。
Mysqldatatype(数据类型)MySQL 数据类型MySQL中定义数据字段的类型对你数据库的优化是⾮常重要的。
MySQL⽀持多种类型,⼤致可以分为三类:数值、⽇期/时间和字符串(字符)类型。
数值类型MySQL⽀持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且⽀持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也⽀持整数类型TINYINT、MEDIUMINT和BIGINT。
下⾯的表显⽰了需要的每个整数类型的存储和范围。
类型⼤⼩范围(有符号)范围(⽆符号)⽤途TINYINT 1 字节(-128,127)(0,255)⼩整数值SMALLINT 2 字节(-32 768,32 767)(0,65 535)⼤整数值MEDIUMINT3 字节(-8 388 608,8 388 607)(0,16 777 215)⼤整数值INT或INTEGER4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)⼤整数值BIGINT8 字节(-9,223,372,036,854,775,808,9 223372 036 854 775 807)(0,18 446 744 073 709 551 615)极⼤整数值FLOAT 4 字节(-3.402 823 466 E+38,-1.175 494 351E-38),0,(1.175 494 351 E-38,3.402823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466E+38)单精度浮点数值DOUBLE8 字节(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度浮点数值DECIMAL 对DECIMAL(M,D),如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值⼩数值⽇期和时间类型表⽰时间值的⽇期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
MySQL中常见的数据类型及其用途MySQL是一种常用的关系型数据库管理系统,被广泛应用于Web开发和其他领域。
在MySQL中,数据类型是数据表中各列的属性之一,它定义了数据的存储格式、占用空间和操作行为。
不同的数据类型适用于不同的数据存储需求和数据操作操作。
本文将介绍MySQL中常见的数据类型及其用途。
1. 整型数据类型整型数据类型用于存储整数值,常见的有以下几种:- TINYINT:存储范围为-128到127的整数。
通常用于存储布尔值,0表示假,1表示真。
- SMALLINT:存储范围为-32768到32767的整数。
适用于存储较小的整数值。
- MEDIUMINT:存储范围为-8388608到8388607的整数。
适用于存储中等大小的整数值。
- INT:存储范围为-2147483648到2147483647的整数。
适用于存储一般大小的整数值。
- BIGINT:存储范围为-9223372036854775808到9223372036854775807的整数。
适用于存储较大的整数值。
整型数据类型用于存储整数,经常用于记录索引、主键或表示计数值。
2. 浮点型数据类型浮点型数据类型用于存储浮点数值,即带有小数点的数值。
常见的有以下几种:- FLOAT:单精度浮点数,占用4字节。
通常用于存储较小范围的浮点数。
- DOUBLE:双精度浮点数,占用8字节。
适用于存储较大范围的浮点数。
浮点型数据类型用于存储需要保留小数位的数值,如货币金额、科学计数法表示的数值等。
3. 定点型数据类型定点型数据类型用于存储固定精度的数值,适用于需要精确计算的场景。
常见的有以下几种:- DECIMAL:用于存储固定精度的十进制数值。
可以指定精度和小数位数。
定点型数据类型适用于要求高精度计算的场景,如财务计算、精确测量等。
4. 字符串型数据类型字符串型数据类型用于存储文本数据,常见的有以下几种:- CHAR:固定长度字符串,最多可以存储255个字符。
使用MySQL处理日期和时间数据的方法与技巧MySQL是一款广泛使用的关系型数据库管理系统,它提供了丰富的功能和灵活的操作方式。
日期和时间数据是数据库中常见的数据类型之一,对于MySQL来说,处理日期和时间数据有许多方法和技巧。
本文将介绍一些常用的方法和技巧,希望能够对大家在使用MySQL处理日期和时间数据时有所帮助。
一、存储日期和时间数据在MySQL中,存储日期和时间数据可以使用多种数据类型,常见的包括DATE、TIME、DATETIME和TIMESTAMP。
每种数据类型都有其特点和适用场景。
1. DATE类型DATE类型用于存储日期信息,其格式为YYYY-MM-DD。
例如,如果想存储2022年10月1日,可以使用DATE类型:'2022-10-01'。
2. TIME类型TIME类型用于存储时间信息,格式为HH:MM:SS。
例如,如果想存储上午8点30分,可以使用TIME类型:'08:30:00'。
3. DATETIME类型DATETIME类型用于存储日期和时间信息,其格式为YYYY-MM-DDHH:MM:SS。
例如,如果想存储2022年10月1日上午8点30分,可以使用DATETIME类型:'2022-10-01 08:30:00'。
4. TIMESTAMP类型TIMESTAMP类型也用于存储日期和时间信息,格式为YYYY-MM-DD HH:MM:SS。
与DATETIME类型不同的是,TIMESTAMP类型在存储时会将时间转换为UTC时间,然后根据时区显示。
例如,如果当前时区是东八区,存储2022年10月1日上午8点30分时,实际存储的值是UTC时间对应的时间戳。
在选择日期和时间数据类型时,需要根据实际需求和业务场景来决定。
如果只需要存储日期信息,可以使用DATE类型;如果只需要存储时间信息,可以使用TIME类型;如果需要同时存储日期和时间信息,可以使用DATETIME或TIMESTAMP类型。
MySQL技术使用数据库的时间与日期类型引言:时间与日期是在各种数据库应用中非常重要的一部分。
MySQL作为一种广泛使用的关系数据库管理系统(RDBMS),也提供了丰富的时间与日期类型以满足各种需求。
本文将探讨MySQL中常用的时间与日期类型,以及它们的使用方法和一些相关的注意事项。
一、DATE类型DATE类型用于存储日期,格式为'YYYY-MM-DD',其中YYYY表示年份,MM表示月份,DD表示日期。
例如,'2022-05-27'表示2022年5月27日。
1. 创建表格并插入DATE类型数据在MySQL中,可以使用以下语句创建一个包含DATE类型字段的表格:```CREATE TABLE my_table (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),birth_date DATE);```然后,可以使用INSERT语句向表格中插入数据:```INSERT INTO my_table (name, birth_date) VALUES ('张三', '1985-02-10');INSERT INTO my_table (name, birth_date) VALUES ('李四', '1990-09-18');```2. 查询DATE类型数据可以使用SELECT语句查询DATE类型数据,例如:```SELECT * FROM my_table WHERE birth_date = '1985-02-10';```这条语句将返回与给定日期匹配的记录。
3. 使用函数处理DATE类型数据除了基本的查询,MySQL还提供了许多内置函数来处理DATE类型数据。
例如:- DATE_ADD(date, INTERVAL expr unit):在给定日期上添加一个时间间隔。
mysql转换字段类型的函数在MySQL中,可以使用ALTER TABLE语句来修改表的字段类型。
以下是一些常用的字段类型转换函数:1. CONVERT()函数:将字段从一种数据类型转换为另一种数据类型。
例如,将字段"age"从整数类型(INT)转换为字符串类型(VARCHAR):```ALTER TABLE table_name MODIFY COLUMN age VARCHAR(10);```2. CAST()函数:将字段从一种数据类型转换为另一种数据类型。
例如,将字段"salary"从浮点数类型(FLOAT)转换为整数类型(INT):```ALTER TABLE table_name MODIFY COLUMN salary INT; ```3. DATE_FORMAT()函数:将日期或时间字段转换为指定格式的字符串。
例如,将日期字段"birth_date"转换为"YYYY-MM-DD"格式的字符串:```ALTER TABLE table_name MODIFY COLUMN birth_date VARCHAR(10);UPDATE table_name SET birth_date =DATE_FORMAT(birth_date, '%Y-%m-%d');```4. STR_TO_DATE()函数:将字符串转换为日期或时间字段。
例如,将字符型字段"date_string"转换为日期字段"date":```ALTER TABLE table_name ADD COLUMN date DATE;UPDATE table_name SET date = STR_TO_DATE(date_string, '%Y-%m-%d');ALTER TABLE table_name DROP COLUMN date_string;```请注意,在进行字段类型转换时,需要注意数据是否丢失或损坏,并在操作之前备份数据以防止意外发生。
MySQL的数据类型转换函数MySQL是一种常用的关系型数据库管理系统,它提供了丰富的数据类型,允许用户在存储和操作数据时更加灵活和高效。
然而,在实际应用中,我们经常需要对数据进行转换,以满足特定的需求。
为了实现这一目标,MySQL提供了许多数据类型转换函数。
一、INT()INT()函数用于将其他数据类型的值转换为整数。
如果参数是一个字符串,INT()函数会尝试将它解析为一个整数。
如果参数是一个浮点数,INT()函数会将其截断为整数。
如果参数是一个日期或时间,INT()函数会将其转换为UNIX时间戳。
例如,假设有一个名为“age”的字段存储了用户的年龄信息,但它的数据类型是字符串。
我们可以使用INT()函数将其转换为整数类型,以便进行数值比较或其他计算操作。
二、CAST()CAST()函数用于将一个表达式转换为指定的数据类型。
它提供了一种更灵活和精确的数据类型转换方式。
CAST()函数的语法如下:CAST(expr AS type)其中,expr是要转换的表达式,type是目标数据类型。
例如,假设有一个名为“price”的字段存储了商品的价格信息,但它的数据类型是字符串。
我们可以使用CAST()函数将其转换为浮点数类型,以便进行价格计算和比较操作。
三、CONVERT()CONVERT()函数用于将一个值转换为指定的数据类型。
它类似于CAST()函数,但提供了更多的选项和灵活性。
CONVERT()函数的语法如下:CONVERT(expr, type)其中,expr是要转换的值,type是目标数据类型。
与 CAST() 函数类似,CONVERT()函数也可以用于将字符串转换为数值类型或日期时间类型,以及进行不同字符集之间的转换。
例如,假设有一个名为“birthday”的字段存储了用户的出生日期信息,但它的数据类型是字符串。
我们可以使用CONVERT()函数将其转换为DATE类型,以便进行日期计算和比较操作。
Mysql中整型的日期格式转换Mysql中整型的日期格式之间的转化函数:UNIX_TIMESTAMP(date)如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT 开始的秒数)。
如果UNIX_TIMESTAMP()用一个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。
date可以是一个DATE字符串、一个DATETIME字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。
mysql> select UNIX_TIMESTAMP();-> 882226357mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');-> 875996580当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。
FROM_UNIXTIME(unix_timestamp)以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值,取决于函数是在一个字符串还是或数字上下文中被使用。
mysql> select FROM_UNIXTIME(875996580);-> '1997-10-04 22:23:00'mysql> select FROM_UNIXTIME(875996580) + 0;-> 19971004222300【服务器学院】包含了详细的Mysql的各种日期格式处理这里是一个使用日期函数的例子。
下面的查询选择了所有记录,其date_col 的值是在最后30天以内:mysql> SELECT something FROM tableWHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;DAYOFWEEK(date)返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。
这些索引值对应于ODBC标准。
mysql> select DAYOFWEEK('1998-02-03');-> 3WEEKDAY(date)返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
mysql> select WEEKDAY('1997-10-04 22:23:00');-> 5mysql> select WEEKDAY('1997-11-05');-> 2DAYOFMONTH(date)返回date的月份中日期,在1到31范围内。
mysql> select DAYOFMONTH('1998-02-03');-> 3DAYOFYEAR(date)返回date在一年中的日数, 在1到366范围内。
mysql> select DAYOFYEAR('1998-02-03');-> 34MONTH(date)返回date的月份,范围1到12。
mysql> select MONTH('1998-02-03');-> 2DAYNAME(date)返回date的星期名字。
mysql> select DAYNAME("1998-02-05");-> 'Thursday'MONTHNAME(date)返回date的月份名字。
mysql> select MONTHNAME("1998-02-05");-> 'February'返回date一年中的季度,范围1到4。
mysql> select QUARTER('98-04-01');-> 2WEEK(date)WEEK(date,first)对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。
2个参数形式WEEK()允许你指定星期是否开始于星期天或星期一。
如果第二个参数是0,星期从星期天开始,如果第二个参数是1,从星期一开始。
mysql> select WEEK('1998-02-20');-> 7mysql> select WEEK('1998-02-20',0);-> 7mysql> select WEEK('1998-02-20',1);-> 8YEAR(date)返回date的年份,范围在1000到9999。
mysql> select YEAR('98-02-03');-> 1998HOUR(time)返回time的小时,范围是0到23。
mysql> select HOUR('10:05:03');-> 10MINUTE(time)返回time的分钟,范围是0到59。
mysql> select MINUTE('98-02-03 10:05:03');-> 5回来time的秒数,范围是0到59。
mysql> select SECOND('10:05:03');-> 3PERIOD_ADD(P,N)增加N个月到阶段P(以格式YYMM或YYYYMM)。
以格式YYYYMM返回值。
注意阶段参数P不是日期值。
mysql> select PERIOD_ADD(9801,2);-> 199803PERIOD_DIFF(P1,P2)返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。
注意,时期参数P1和P2不是日期值。
mysql> select PERIOD_DIFF(9802,199703);-> 11DATE_ADD(date,INTERVAL expr type)DATE_SUB(date,INTERVAL expr type)ADDDATE(date,INTERVAL expr type)SUBDATE(date,INTERVAL expr type)这些功能执行日期运算。
对于MySQL 3.22,他们是新的。
ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词。
在MySQL 3.23中,你可以使用+和-而不是DATE_ADD()和DATE_SUB()。
(见例子)date是一个指定开始日期的DATETIME或DATE值,expr是指定加到开始日期或从开始日期减去的间隔值一个表达式,expr是一个字符串;它可以以一个“-”开始表示负间隔。
type是一个关键词,指明表达式应该如何被解释。
EXTRACT(type FROM date)函数从日期中返回“type”间隔。
下表显示了type和expr参数怎样被关联: type值含义期望的expr格式SECOND 秒 SECONDSMINUTE 分钟 MINUTESHOUR 时间 HOURSDAY 天 DAYSMONTH 月 MONTHSYEAR 年 YEARSMINUTE_SECOND 分钟和秒 "MINUTES:SECONDS"HOUR_MINUTE 小时和分钟 "HOURS:MINUTES"DAY_HOUR 天和小时 "DAYS HOURS"YEAR_MONTH 年和月 "YEARS-MONTHS"HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS"DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES"DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"MySQL在expr格式中允许任何标点分隔符。
表示显示的是建议的分隔符。
如果date参数是一个DATE值并且你的计算仅仅包含YEAR、MONTH和DAY部分(即,没有时间部分),结果是一个DATE值。
否则结果是一个DATETIME值。
mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;-> 1998-01-01 00:00:00mysql> SELECT INTERVAL 1 DAY + "1997-12-31";-> 1998-01-01mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;-> 1997-12-31 23:59:59mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 SECOND);-> 1998-01-01 00:00:00mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL 1 DAY);-> 1998-01-01 23:59:59mysql> SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND);-> 1998-01-01 00:01:00mysql> SELECT DATE_SUB("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND);-> 1997-12-30 22:58:59mysql> SELECT DATE_ADD("1998-01-01 00:00:00",INTERVAL "-1 10" DAY_HOUR);-> 1997-12-30 14:00:00mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);-> 1997-12-02mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");-> 1999mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");-> 199907mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");-> 20102如果你指定太短的间隔值(不包括type关键词期望的间隔部分),MySQL假设你省掉了间隔值的最左面部分。