【问题标题】:Query to find out day of each of employees date of birth查询每个员工出生日期的日期
【发布时间】:2017-04-08 18:25:20
【问题描述】:

我试过这段代码。但它不起作用。(我使用的是 NetBeans 内部数据库)

代码是-

SELECT DATEPART(yyyy,DOB) AS BirthYear,
DATEPART(mm,DOB) AS BirthMonth,
DATEPART(dd,DOB) AS BirthDay
FROM Employees
WHERE EmpId=1

错误-

[异常,错误代码 30,000,SQLState 42X04] 列 'YYYY' 是 不在 FROM 列表中的任何表中或出现在连接中 规范并且超出了连接规范的范围,或者 出现在 HAVING 子句中并且不在 GROUP BY 列表中。如果这是 CREATE 或 ALTER TABLE 语句,则 'DD' 不是 目标表。

【问题讨论】:

  • 您使用的是哪个数据库?
  • 我正在使用mysql。
  • 我已经发布并回答了 ..mysql 使用特定函数 asyear()、month() 和 day() 来检索您正在寻找的日期时间列 ..

标签: mysql sql date


【解决方案1】:

Assumin DOB 是验证日期列,如果您使用 mysql,您应该使用 year()、month() 和 day() 而不是 datepart ..

SELECT year(DOB) AS BirthYear,
       month(DOB) AS BirthMonth,
        day(DOB) AS BirthDay
FROM Employees
WHERE EmpId=1

(如果是 sqlserver 的日期部分)

对于每个员工,您都可以

SELECT EmpId,
       year(DOB) AS BirthYear,
       month(DOB) AS BirthMonth,
        day(DOB) AS BirthDay
FROM Employees

【讨论】:

    【解决方案2】:

    MySQL 有一个专门的函数来返回工作日的索引。文档说:

    DAYOFWEEK(date)
    
    Returns the weekday index for date (1 = Sunday, 2 = Monday, …, 7 = 
    Saturday). These index values correspond to the ODBC standard.
    
    mysql> SELECT DAYOFWEEK('2007-02-03');
        -> 7 
    

    因此,您基本上可以在查询中使用它,并稍后根据索引操作输出。像这样的:

    SELECT DAYOFWEEK(DOB) AS Day_of_Week,
    FROM Employees
    WHERE EmpId=1;
    

    如果您希望从查询本身获取输出,可以使用 CASE 语句:

    SELECT CASE DAYOFWEEK(DOB)
           WHEN 1 THEN 'SUNDAY'
           WHEN 2 THEN 'MONDAY'
           ---
        END AS Day_of_Week
    FROM Employees
    WHERE EmpId=1;
    

    希望它有效!祝你好运!

    【讨论】:

      【解决方案3】:

      MySQL 有这些功能,see doc

      SELECT
          YEAR(DOB)AS BirthYear,
          MONTH(DOB)AS BirthMonth,
          DAY(DOB)AS BirthDay
      FROM
          Employees
      WHERE
          EmpId = 1
      

      【讨论】:

        猜你喜欢
        • 2014-01-05
        • 1970-01-01
        • 2017-03-22
        • 1970-01-01
        • 2020-07-21
        • 1970-01-01
        • 2017-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多