取其中周六的记录,sql应该如何写?

请问,取其中周六的记录,sql应该如何写?
表 table1:

nametime
name012023-01-01 15:16:17
name022023-01-02 15:16:17
name032023-01-03 15:16:17
name042023-01-04 15:16:17
name052023-01-05 15:16:17
name062023-01-06 15:16:17
name072023-01-06 15:16:17
name082023-01-08 15:16:17
name092023-01-09 15:16:17
name102023-01-10 15:16:17
name112023-01-11 15:16:17
name122023-01-12 15:16:17
name132023-01-13 15:16:17
name142023-01-14 15:16:17
name152023-01-15 15:16:17

可以借助星期几函数处理,先把时间转为星期几,再筛选:

  • mysql星期几的函数是DAYOFWEEK('日期')
select dayofweek('2023-04-29 00:00:00') 
  • oracle星期几的函数是DATEPART(weekday,'日期')
select datepart(weekday,'2023-04-29 00:00:00') 
  • 注意点:星期一返回值为1,星期六返回值为7

img


SELECT * FROM table1 WHERE DATENAME(dw, time) = 'SATURDAY';