mysql中那些你基本没用过的函数
2013-10-30 11:54
701 查看
1.soundex()
就是找出与发音相似的数据
例子
user 表中 name 值为 Y.Lee 的一条数据
查询:
seleect * from user where name='Y.Lie'//不记得具体写法
显然,得不到数据
等一下,加个函数就行了
select * from user where Soundex(name)=Soundex('Y.Lie');
就找到了name值为 Y.Lee的数据
2.mysql中的日期函数
首先说一下类型
类型名 说明
date “yyyy-mm-dd”格式表示的日期值
time “hh:mm:ss”格式表示的时间值
datetime “yyyy-mm-dd hh:mm:ss”格式
timestamp “yyyymmddhhmmss”格式表示的时间戳值
year “yyyy”格式的年份值
date “1000-01-01”到“9999-12-31” 3字节
time “-838:59:59”到“838:59:59” 3字节
datetime “1000-01-01 00:00:00” 到“9999-12-31 23:59:59”
8字节
timestamp 19700101000000 到2037 年的某个时刻 4字节
year 1901 到2155 1字节
恩,下面举一个例子
再products 表中有一个dt字段(datetime类型)保存进货时间
现在要得到2008.08.08日的进货记录
你肯定会写到
select * from products where dt='2008-08-08';
或许你狠幸运会得到数据,但你得不到数据的可能性更大
注意dt的类型
其实你的sql语句补全是这样的
select * from products where dt='2008-08-08 00:00:00';
懂了吧
如果只有一条记录并且dt='2008-08-08 12:22:23';
那么你肯定得不到数据,不信你试试
解决方法:
select * from products where Date(dt) =‘2008-08-08’;
问题由来了,如果我要获取2008年08月的记录怎么写
有两个方法:
法一:
select * from products where Date(dt) between '2008-08-01' and
'
2008-08-31';
法二:
select * from products where Year(dt)='2008' and
Month(dt)='08';
恩,没错就是根据函数
简单介绍一下
Date()函数,是获取时间字符串里的日期
Year()函数,是获取时间字符串里的年份
Month()函数,是获取时间字符串里的月份
特别提醒,创建表的时候,一定要注意字段是Date类型还是datetime类型
时间和日期是不同的概念
下面是一个日期和时间处理函数列表
AddDate()
增加一个日期(天,周)
AddTime()
增加一个时间(小时,分钟)
CurDate()
返回当前日期
CurTime() 返回当前时间
Date()
返回日期时间的日期部分
DateDiff()
计算两个日期之差
Date_Add()
高度灵活的日期运算函数(未测试)
Date_Format() 返回一个格式化的日期或时间串
Day()
返回一个日期的天数部分
DayOfWeek()
对以一个日期,返回对应的星期几
Hour()
返回一个时间的小时部分
Minute()
返回一个时间的分钟部分
Now()
返回当前日期和时间
Second()
返回一个时间的秒
Time()
返回日期时间的时间部分
Year()
返回日期的年份部分
就是找出与发音相似的数据
例子
user 表中 name 值为 Y.Lee 的一条数据
查询:
seleect * from user where name='Y.Lie'//不记得具体写法
显然,得不到数据
等一下,加个函数就行了
select * from user where Soundex(name)=Soundex('Y.Lie');
就找到了name值为 Y.Lee的数据
2.mysql中的日期函数
首先说一下类型
类型名 说明
date “yyyy-mm-dd”格式表示的日期值
time “hh:mm:ss”格式表示的时间值
datetime “yyyy-mm-dd hh:mm:ss”格式
timestamp “yyyymmddhhmmss”格式表示的时间戳值
year “yyyy”格式的年份值
date “1000-01-01”到“9999-12-31” 3字节
time “-838:59:59”到“838:59:59” 3字节
datetime “1000-01-01 00:00:00” 到“9999-12-31 23:59:59”
8字节
timestamp 19700101000000 到2037 年的某个时刻 4字节
year 1901 到2155 1字节
恩,下面举一个例子
再products 表中有一个dt字段(datetime类型)保存进货时间
现在要得到2008.08.08日的进货记录
你肯定会写到
select * from products where dt='2008-08-08';
或许你狠幸运会得到数据,但你得不到数据的可能性更大
注意dt的类型
其实你的sql语句补全是这样的
select * from products where dt='2008-08-08 00:00:00';
懂了吧
如果只有一条记录并且dt='2008-08-08 12:22:23';
那么你肯定得不到数据,不信你试试
解决方法:
select * from products where Date(dt) =‘2008-08-08’;
问题由来了,如果我要获取2008年08月的记录怎么写
有两个方法:
法一:
select * from products where Date(dt) between '2008-08-01' and
'
2008-08-31';
法二:
select * from products where Year(dt)='2008' and
Month(dt)='08';
恩,没错就是根据函数
简单介绍一下
Date()函数,是获取时间字符串里的日期
Year()函数,是获取时间字符串里的年份
Month()函数,是获取时间字符串里的月份
特别提醒,创建表的时候,一定要注意字段是Date类型还是datetime类型
时间和日期是不同的概念
下面是一个日期和时间处理函数列表
AddDate()
增加一个日期(天,周)
AddTime()
增加一个时间(小时,分钟)
CurDate()
返回当前日期
CurTime() 返回当前时间
Date()
返回日期时间的日期部分
DateDiff()
计算两个日期之差
Date_Add()
高度灵活的日期运算函数(未测试)
Date_Format() 返回一个格式化的日期或时间串
Day()
返回一个日期的天数部分
DayOfWeek()
对以一个日期,返回对应的星期几
Hour()
返回一个时间的小时部分
Minute()
返回一个时间的分钟部分
Now()
返回当前日期和时间
Second()
返回一个时间的秒
Time()
返回日期时间的时间部分
Year()
返回日期的年份部分
相关文章推荐
- mysql 笔记四
- mysql 笔记三 (联系正则表达式)
- mysql 基础(转)
- mysql 笔记一
- mysql 笔记二
- mysql 模糊查询
- mysql字符问题
- mysql 时间操作 下 很强 (转)
- mysql 时间函数 操作 很强 上(转…
- Mysql中查看表的类型InnoDB
- mysql数据库引擎问题汇总
- MySql5.5忘记root密码的解决方法
- MySQL数据库备份命令
- 详解mysql int类型的长度值问题
- 创建存储过程报ERROR 1-64(42000)
- mysql 技术内幕:InnoDB存储引擎
- 安装Navicat for MySQL详细步骤
- MySql学习1
- MySQL中无GROUP BY直接HAVING的问题【转】
- mysql重复字段中 --- 获得最后一次插入的记录