Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql中带有日期的操作_Sql_Oracle - Fatal编程技术网

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

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 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谢谢,它成功了!这是一个课程的例子,我想看看它是否有效。请注意,这个查询将忽略索引(对于大型数据集来说会很慢)。如果你有一个日历表,你可以很容易地完成这一点与连接;请记住,整周数意味着从一周的同一天开始。