Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Laravel中使用MySql实现考勤报表

在Laravel中使用MySql实现考勤报表
EN

Stack Overflow用户
提问于 2021-09-24 22:34:13
回答 1查看 55关注 0票数 0

日安!

我想生成一个报告,将显示在附件中的照片一样。Click this example photo

我想在查询中将datetime分为时间(上午7:00AM)、超时AM (12:00AM)、下午时间(12:30 AM )和超时PM((5:00 PM

到目前为止,我得到的只是一个静态日期,我不知道如何通过使用timerange Click the example photo 2来使其动态。希望你能帮上忙。谢谢。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select datetime,id,
(CASE WHEN datetime > '19/04/2021 6:30' AND datetime < '19/04/2021 8:30' THEN datetime ELSE NULL END) as TimeInAM,
(CASE WHEN datetime > '19/04/2021 11:30' AND datetime < '19/04/2021 12:30' THEN datetime ELSE NULL END) as TimeOutAM,
(CASE WHEN datetime > '19/04/2021 12:30' AND datetime < '19/04/2021 13:30'THEN datetime ELSE NULL END) as TimeInPM,
(CASE WHEN datetime > '19/04/2021 16:30' AND datetime < '19/04/2021 21:30'THEN datetime ELSE NULL END) as TimeOutPM
from time_attendances WHERE id = 1345
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-24 23:50:47

我建议不要使用保留的MySQL单词,比如datetimehttps://dev.mysql.com/doc/refman/8.0/en/keywords.html

你是不是在尝试这样的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT d,
if( DATE_FORMAT(d,'%r') between '06:30:00 AM' and '08:30:00 AM' ,  d, 'Null' )  as TimeInAM ,
if( DATE_FORMAT(d,'%r') between '11:30:00 AM' and '12:29:59 AM' ,  d, 'Null' )  as TimeOutAM ,
if( DATE_FORMAT(d,'%r') between '12:30:00 AM' and '01:30:00 PM' ,  d, 'Null' )  as TimeInPM ,
if( DATE_FORMAT(d,'%r') between '04:30:00 PM' and '09:30:00 AM' ,  d, 'Null' )  as TimeOutPM 
from test ;

演示:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/62

07:01:00 AM格式的DATE_FORMAT(date_time,'%r')返回日期,09:30:00 PM格式。

请根据您的值进行检查,现在就让我检查。

编辑:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/67

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT d,dayname(d) as week_day,
if( DATE_FORMAT(d,'%r') between '06:30:00 AM' and '08:30:00 AM' ,  DATE_FORMAT(d,"%h:%i %p"), 'Null' )  as TimeInAM ,
if( DATE_FORMAT(d,'%r') between '11:30:00 AM' and '12:29:59 AM' ,  DATE_FORMAT(d,"%h:%i %p"), 'Null' )  as TimeOutAM ,
if( DATE_FORMAT(d,'%r') between '12:30:00 AM' and '01:30:00 PM' ,  DATE_FORMAT(d,"%h:%i %p"), 'Null' )  as TimeInPM ,
if( DATE_FORMAT(d,'%r') between '04:30:00 PM' and '09:30:00 PM' ,  DATE_FORMAT(d,"%h:%i %p"), 'Null' )  as TimeOutPM 
from test   order by d desc ;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69323725

复制
相关文章
Linux ln命令 - 建立文件/目录链接
ln -s abc cde 建立abc 的软连接 (注意-s的参数)
sinnoo
2021/07/27
8.9K0
Docker查看容器命令(docker ps)
查看容器 #查看容器 docker ps # 查看正在运行的容器 查看所有容器 # 查看所有容器 docker ps –a 非root用户 查看容器 #查看容器 sudo docker ps # 查看正在运行的容器 查看所有容器 # 查看所有容器 sudo docker ps –a
用户9006224
2022/12/21
2.2K0
Docker(11)- docker ps 命令详解
作用 列出容器 语法格式 docker ps [OPTIONS] options 说明 option 作用 -a, --all 显示全部容器(默认只显示运行中的容器) -f, --filter filter 根据提供的 filter 过滤输出 -n, --last int 列出最近创建的 n 个容器(默认-1,代表全部) -l, --latest 显示最近创建的容器(包括所有状态的容器) -s, --size 显示总的文件大小 --no-trunc 显示完整的镜像 ID -q, --quiet 静默模式,
小菠萝测试笔记
2020/11/11
3K2
Docker(11)- docker ps 命令详解
Docker--docker ps 命令与结果解析
命令详解 意义:列出容器相关信息 格式:docker ps [options] 参数列表: 参数 解释 无参 默认显示正在运行的容器 -a 显示所有的容器,包括未运行的 -f 根据条件过滤显示的内容 --format 指定返回值的模板文件 -l 显示最近创建的容器 -n 列出最近创建的n个容器 --no-trunc 不截断输出 -q 静默模式,只显示容器ID -s 显示总的文件大小 命令 docker ps 获取的结果示例 CONTAINER ID IMAG
洋仔聊编程
2019/01/15
2.7K0
Docker--docker ps 命令与结果解析
里面包含ps的详细使用教程,虽然是英文的但是实例有一点英语功底就可以看懂,其中包含ps的模糊查询等。
洋仔聊编程
2020/08/02
1.7K0
迁移docker工作目录
目的:为了解决 /var/lib/docker/overlay2 占用大 /var 分区空间不够问题
louiezhou001
2021/11/01
1.5K0
安装docker后修改docker文件目录
docker会下载容器,运行会挂载磁盘,所以我们需要把docker装在大容量的分区。
Ryan-Miao
2019/07/08
1.7K0
【目标检测】开源 | TIDE:目标检测错误分析工具
论文地址: http://arxiv.org/pdf/2008.08115v2.pdf
CNNer
2020/11/03
2.2K0
【目标检测】开源 | TIDE:目标检测错误分析工具
ln命令
ln命令用来为文件创建链接,链接类型分为硬链接和软链接两种,软链接又称符号链接,默认的链接类型是硬链接,如果要创建符号链接必须使用-s选项,符号链接文件不是一个独立的文件,其很多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。
WindRunnerMax
2020/08/27
9660
Docker之修改docker默认的目录
 默认情况下Docker会使用/var/lib/docker,此目录会放镜像好容器及卷的信息,有时候,我们想换到其它目录,而不是此目录下,那么怎么处理呢?
克虏伯
2019/08/22
3K1
Linux ln命令
Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
狼啸风云
2020/05/07
4.4K0
Docker永久挂载本地目录
有时我们的docker需要用到本地的数据集,虽然我们可以用docker cp的方式进行拷贝,但是通常如果数据集很大,所以直接拷贝到容器里显然不现实,所以我们需要把数据集的路径挂载到容器。但是普通的docker mount命令又有一个缺点,就是每次开启这个容器都得输这个命令,所以要想长期挂载这个目录下面的方法:
marsggbo
2020/06/12
4.7K0
docker:(3)docker容器挂载宿主主机目录
有一项重要的参数 -v 目录挂载,就是让容器内部目录和宿主主机目录关联起来,这样就可以直接操作宿主主机目录而不用再操作具体容器了
肖哥哥
2018/08/02
2.5K0
docker 错误记录
windows和Linux的换行符存在差异,Windows下写的脚本拷贝到Linux系统,会导致#!/bin/bash后面多个^M,因此提示找不到文件。
luoheng
2022/08/29
4020
简述linux系统的目录层次结构_docker 目录
Linux 的文件系统是采用层级形式的树状目录结构,最上层为根目录“/”,然后在根目录下创建其他目录。在 Linux 操作系统当中,是没有像我们在 Windows 系统中一样的界面的,我们能看到的就是各级文件,也就是目录结构。Linux 操作系统中,一切皆文件,Linux 会将所有硬件设备也映射为文件来管理。
全栈程序员站长
2022/11/09
1.9K0
简述linux系统的目录层次结构_docker 目录
linux工具箱_docker ps命令
GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具;
全栈程序员站长
2022/10/05
1.9K0
【⚠️windows删除文件夹抽风了⚠️】“错误0x80070091:目录不是空的”问题处理
windows有时候会抽风,删除东西会出现异常。有次删除文件夹时就出现无法删除的情况,提示“一个意外错误使您无法删除该文件夹。如果您继续收到此错误,可以使用错误代码来搜索有关此问题的帮助。错误0x80070090:目录不是空的”。在网上搜索了一大圈,总结了一个比较靠谱的方法,现在分享给大家(核心就是把文件夹变成非空文件夹):
全栈程序员站长
2022/07/25
3.4K0
【⚠️windows删除文件夹抽风了⚠️】“错误0x80070091:目录不是空的”问题处理
检查当前终端是不是 Docker
要确定当前运行的终端是否在 Docker 容器内,可以检查容器特定的文件和环境变量。以下是一种方法,通过查看 /proc/1/cgroup 文件来判断:
宋天伦
2023/10/21
4190
linux ln 软连接_ln命令建立软链接
[root@ www.linuxidc.com ~]# ln -s /home/kk/ss.sh ~ #如果不写目标地址,即在当前目录建接立链接
全栈程序员站长
2022/11/11
9.8K0
ln命令详解
本文介绍了ln命令的详细用法,包括创建硬连接和符号连接,以及使用ln命令创建目录的硬连接和符号连接。同时,文章还介绍了ln命令的参数和实例,以及使用这些参数的优点。
诺谦
2018/01/03
1.9K0
ln命令详解

相似问题

JavaScript添加天数

50

momentJS在JavaScript中没有正确地添加天数

37

Javascript日期添加天数

13

在循环Javascript中添加天数

334

在javascript中添加日期天数

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文