当前位置: 首页 > 知识库问答 >
问题:

选择每月在职员工,日期格式为dd/mm/yyyy

章振
2023-03-14

问题是我不知道如何在这里做一个查询或php处理来实现这一点。

我所能想到的就是这样的事情(我每个月都运行这个查询,传递年和月作为参数)

pg_query= "SELECT employee_name FROM employees
           WHERE month_and_year between start_date AND finish_date"

但这是不可能的,主要是因为month_and_year必须是列而不是变量
有人想吗?

select * from employees where extract (year FROM start_date)>='2013'
AND extract (month FROM start_date)='06' AND extract (month FROM finish_date)<='07'

这给了我从2013年6月开始的所有记录,你肯定可以为你喜欢的任何变量隐藏字面变量

共有1个答案

屈星腾
2023-03-14

假设您确实没有将日期存储为字符串,而只是以字符串的方式输出日期,那么您可以执行以下操作:

SELECT employee_name
FROM employees
WHERE start_date <= <last date of month> and
      (finish_date >= <first date of month> or finish_date is null)

如果您以这种格式存储它们,那么您可以对年份和月份进行一些调整。
该版本将“日期”转换为“yyyymm”形式的字符串。只要把你想要的月份表达成这样,你就可以做比较了:

select employee_name
from employees e
where right(start_date, 4)||substr(start_date, 4, 2) <= 'YYYYMM' and
      (right(finish_date, 4)||substr(finish_date, 4, 2) >= 'YYYYMM' or finish_date is null)

注意:表达式'yyyymm'意味着您要查找的月份/年份。

 类似资料:
  • 问题内容: 我对如何按日期格式排序有些困惑。 对于格式,您可以这样做: 您如何订购? 这不起作用: 问题答案: 您可以用来将字符串转换为MySQL日期值和结果: 但是,明智的做法是将列转换为数据类型,而不是使用字符串。

  • 问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的

  • 我有一个格式为。我希望它的格式为 下面是我尝试进行此转换的示例util: 但是,我得到的输出不是格式。 请告诉我如何将从格式化为

  • 我从格式为yyyy-mm-dd(加上不需要的hh-mm-ss)的API中获取日期结果。我想在jQuery中将其转换为dd-mm-yyyy格式,最简单/最快的方法是什么? 目前我正在使用:(对于返回的字符串yyyy-mm-dd): 但是好像有点啰嗦。

  • 问题内容: 如何检查SQL Server中日期字符串是否为MM / DD / YYYY格式? 问题答案: 如果结果为1,则为有效日期,但不能保证其为用户指定的日期。如果他们输入: 没有办法知道是6月7日还是7月6日。最好的办法是让用户从下拉列表或日历控件中选择日期,这使您可以控制格式并避免不必要的解释。您的应用程序层可以使用强类型变量/参数,然后插入正确类型的列中。

  • 问题内容: 如何将日历日期转换为格式。 这将产生。但是我需要的是。我的目的是使用条件将此日期与数据库中的另一个日期进行比较。所以我需要格式的日期对象。 问题答案: Java是自1970年1月1日格林尼治标准时间00:00:00以来的毫秒数的容器。 当你使用时,Java将使用打印内容。 更改它的唯一方法是重写Date并提供你自己的实现。现在,在启动IDE并尝试执行此操作之前,我不会这样做。它只会使事