我尝试了这段代码。但它没有用。(我使用的是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'不是一个列 目标表。
答案 0 :(得分:-1)
MySQL具有see doc
的功能SELECT
YEAR(DOB)AS BirthYear,
MONTH(DOB)AS BirthMonth,
DAY(DOB)AS BirthDay
FROM
Employees
WHERE
EmpId = 1
答案 1 :(得分:-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,则为datepart)
并为每位员工提供
SELECT EmpId,
year(DOB) AS BirthYear,
month(DOB) AS BirthMonth,
day(DOB) AS BirthDay
FROM Employees
答案 2 :(得分:-1)
MySQL有一个专门的函数,它返回工作日的索引。文档说:
#include <stdio.h>
void
print_string(char *str)
{
printf("%s\n", str);
}
所以你基本上可以在你的查询中使用它,然后根据索引操作输出。像这样:
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
如果您希望从查询本身获取输出,可以使用CASE语句:
SELECT DAYOFWEEK(DOB) AS Day_of_Week,
FROM Employees
WHERE EmpId=1;
希望它有效!!祝你好运!