您的位置:首页 > 数据库 > MySQL

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()    
   返回日期的年份部分
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: