试图列出在2007年之前被雇用并且奖金至少为8.00的员工

时间:2018-03-28 19:56:41

标签: sql ms-access

这就是我的SQL查询的样子,但是我的回报仍然显示一些奖金低于8.00的员工,我做错了什么?

SELECT EMP_NUM, EMP_LNAME, EMP_FNAME, EMP_HIREDATE, EMP_PCT
FROM employee
WHERE EMP_HIREDATE < #01/01/2007#
AND EMP_PCT  >=  #8.00# ;

输出

enter image description here

2 个答案:

答案 0 :(得分:3)

MS Access将#用于 date 文字,但不使用其他常量。我强烈建议您使用yyyy / mm / dd格式表示日期。所以:

SELECT EMP_NUM, EMP_LNAME, EMP_FNAME, EMP_HIREDATE, EMP_PCT
FROM employee
WHERE EMP_HIREDATE < #2017/01/01# AND
      EMP_PCT  >=  8.00;

如果EMP_PCT实际上是介于0和1之间的值,那么您可能希望使用0.08代替8.00

答案 1 :(得分:0)

SELECT EMP_NUM, EMP_LNAME, EMP_FNAME, EMP_HIREDATE, EMP_PCT
FROM employee
WHERE EMP_HIREDATE < '01/01/2007'
AND cast(EMP_PCT as float)  >=   8.00