MySQL-函数-日期相关

在处理数据的时候,类似于消费订单数据时,总是会有一些对日期的操作,那么在Mysql中如何对日期类型数据进行操作呢。

Mysql的日期数据格式类型

Date类型 格式:YYYY-MM-DD

对于Date类型数据可以使用的函数:

  • year(column) :返回YYYY的年数据
  • month(column) :返回MM的月份数据
  • day(column):返回DD的日期数据
  • date_add(column,INTERVAL expr unit) :unit是加减的单位 可以是 year,month,week,day,hour,second
  • DATE_FORMAT(date, format): 将日期按照指定的格式返回字符串。
    • 例子:DATE_FORMAT('2024-08-02', '%Y年%m月%d日') 返回 ‘2024年08月02日’
  • DATEDIFF(date1, date2): 返回两个日期之间的天数差。
    • 例子:DATEDIFF('2024-08-02', '2024-07-01') 返回 32

2024-09-02更新datediff()函数

今天遇到一个问题,看题解的时候发现,为什么使用以下sql返回的数据和我预期的不太一样

with tmp as (
    select visited_on,sum(amount) as amount
    from Customer
    group by visited_on
)
select * from
tmp a,
tmp b
WHERE DATEDIFF(a.visited_on,b.visited_on) between 0 and 6
order by a.visited_on,b.visited_on asc 

我预期的:既然是a,b的笛卡尔积,使用WHERE DATEDIFF(a.visited_on,b.visited_on) between 0 and 6筛选的不就是当天相差0-6天的天组合嘛,但是我也意识到,如果前后都相差6天岂不是会返回算上自身共计13天的组合,所以datediff绝对不是我预期的用法

果然,datediff(day1,day2)返回的是day1-day2的天数差,是可以为复数的!!!不是取绝对值!!!

这下,我就理解为什么这个筛选可以解决统计从开始日期统计连续7天的金额总计、平均了,只需要在这一步之后加一个count()就可以解决连续xx天的问题。

  • ADDDATE(date, interval): 相当于DATE_ADD(),添加指定的间隔到日期。
    • 例子:ADDDATE('2024-08-02', INTERVAL 1 MONTH) 返回 ‘2024-09-02’
  • SUBDATE(date, interval): 从日期中减去指定的间隔。
    • 例子:SUBDATE('2024-08-02', INTERVAL 1 DAY) 返回 ‘2024-08-01’
  • CURDATE(): 返回当前的日期。
  • NOW(): 返回当前的日期和时间。
  • CURRENT_DATE: 与CURDATE()相同。
  • CURRENT_TIME: 返回当前的时间。
  • CURRENT_TIMESTAMP: 返回当前的日期和时间。
  • STR_TO_DATE(string, format): 将字符串按照指定的格式转换为日期。
    • 例子:STR_TO_DATE('02/08/2024', '%d/%m/%Y') 返回 ‘2024-08-02’
  • CONVERT_TZ(date, from_tz, to_tz): 将日期从一个时区转换到另一个时区。
  • UNIX_TIMESTAMP(date): 将日期转换为UNIX时间戳。
  • FROM_UNIXTIME(unix_timestamp): 将UNIX时间戳转换回日期。
  • TIMESTAMPDIFF(unit, date1, date2): 返回两个时间戳之间的差异,unit可以是SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR
  • DATE_ADD(date, INTERVAL expr unit): 向日期添加一个时间间隔。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇