mysql中那些你基本没用过的函数

本文介绍了SQL中用于查找发音相似数据的soundex()函数,并解释了如何正确使用日期时间函数,如Date(), Year(), Month()等,以解决查询特定日期数据的问题。文章通过实例演示了如何在产品进货时间查询中运用这些函数,提供了两种获取指定月份记录的方法,并列举了多个日期和时间处理函数,旨在帮助开发者提高SQL查询效率。
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()        返回日期的年份部分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值