sql中带有日期的操作
Hy,我是sql新手,我正在努力让工作了整整一周(整数)的员工参与进来。我试过这个:sql中带有日期的操作,sql,oracle,Sql,Oracle,Hy,我是sql新手,我正在努力让工作了整整一周(整数)的员工参与进来。我试过这个: SELECT employee_id, last_name, salary FROM employees WHERE MOD(ROUND(SYSDATE – hire_date), 7) = 0; 但我有一个错误: 0911. 00000 - "invalid character" *Cause: identifiers may not start with any ASCII character o
SELECT employee_id, last_name, salary
FROM employees
WHERE MOD(ROUND(SYSDATE – hire_date), 7) = 0;
但我有一个错误:
0911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
letters and numbers. $#_ are also allowed after the first
character. Identifiers enclosed by doublequotes may contain
any character other than a doublequote. Alternative quotes
(q'#...#') cannot use spaces, tabs, or carriage returns as
delimiters. For all other contexts, consult the SQL Language
Reference Manual.
*
有人能帮我解决这个问题吗?您的where
子句中有一个“En-Dash”(–,ascii代码150),而不是用作减法运算符的hypen(-,ascii代码45)
如果将其替换为正确的字符,则查询将正常执行:
SELECT employee_id, last_name, salary
FROM employees
WHERE MOD(ROUND(SYSDATE - hire_date), 7) = 0;
Oracle sql developer。我正在使用ubuntuThat,它不是一个常规的
-
,它是一种破折号。删除它并重新键入。(永远不要从Word或其他类似的文本处理器复制/粘贴代码或SQL。)@Mat谢谢,它成功了!这是一个课程的例子,我想看看它是否有效。请注意,这个查询将忽略索引(对于大型数据集来说会很慢)。如果你有一个日历表,你可以很容易地完成这一点与连接;请记住,整周数意味着从一周的同一天开始。