SQL函数:DAYOFWEEK简单使用返回星期

本文介绍了如何在数据库中处理VARCHAR存储的时间字段,通过SUBSTRING和STR_TO_DATE函数将字符串转换为日期并利用DAYOFWEEK获取星期,然后进行格式优化,以更符合日常习惯的形式返回星期信息。
摘要由CSDN通过智能技术生成

我们在数据库中存储时间字段时,偶尔会出现为了方便写入或者展示的原因使用了varchar字段对时间进行存储,今天我们来讲解如何对字符串时间字段返回星期。

用到的函数:DAYOFWEEK

使用示例:

SELECT
	execute_time 
FROM
	user_logs 
ORDER BY
	execute_time DESC 
	LIMIT 10;

现在获取的字段为“2024年01月09日00时42分04秒”

我们需要对它切片后再进行星期的返回:

SELECT     
    SUBSTRING(execute_time, 1, 11) as execute_date,     
		DAYOFWEEK(STR_TO_DATE(SUBSTRING(execute_time, 1, 11), '%Y年%m月%d日'))  as `星期时间`     
FROM user_logs          
GROUP BY execute_date      
ORDER BY execute_date DESC
limit 10;

我们通过SUBSTRING函数对字符串切片,再通过STR_TO_DATE函数把字符串转为时间类型。

这样,我们已经能获取到了日期对应的星期。

当然,我们需要注意,这样直接返回的星期,1代表周日,2代表周一,3代表周二,以此类推。不符合我们常规习惯,我们可以再进行优化下:

SELECT     
    SUBSTRING(execute_time, 1, 11) as execute_date,     
    CASE DAYOFWEEK(STR_TO_DATE(SUBSTRING(execute_time, 1, 11), '%Y年%m月%d日'))  
        WHEN 1 THEN '星期日'  
        WHEN 2 THEN '星期一'  
        WHEN 3 THEN '星期二'  
        WHEN 4 THEN '星期三'  
        WHEN 5 THEN '星期四'  
        WHEN 6 THEN '星期五'  
        WHEN 7 THEN '星期六'  
    END as `星期时间`      
FROM user_logs            
GROUP BY execute_date      
ORDER BY execute_date DESC
limit 10;

现在,返回的日期就符合我们日常使用的形式了。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值