Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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 - Fatal编程技术网

按sql排序

按sql排序,sql,Sql,我正在做一个表格,我想选择90年代出生的学生。这就是我试图做到的: dbGetQuery(con, "SELECT name, forname, bdate FROM student WHERE (bdate < 1990.01.01) OR (bdate > 1999.12.31) ORDER BY id" ) dbGetQuery(con, “选择名称、forname、bdate 来自学生 其中(b日期1999.12.31) 按id订购”

我正在做一个表格,我想选择90年代出生的学生。这就是我试图做到的:

dbGetQuery(con, 
    "SELECT name, forname, bdate 
    FROM student 
    WHERE (bdate < 1990.01.01) OR (bdate > 1999.12.31) 
    ORDER BY id"
)
dbGetQuery(con,
“选择名称、forname、bdate
来自学生
其中(b日期<1990.01.01)或(b日期>1999.12.31)
按id订购”
)
但我得到了这个错误:

创建结果时出错(conn@ptr,语句):接近“.01”:语法错误


日期输入不正确。您没有提到正在使用哪个数据库,所以我将参考SQL标准。你应该:

  • 用单引号将文字日期括起来
  • 将单词
    DATE
    前置到日期值
  • 没有必要加括号
您的SQL查询应该如下所示:

SELECT name, forname, bdate 
FROM student 
WHERE bdate between date '1990-01-01' and date '1999-12-31'
ORDER BY id

日期输入不正确。您没有提到正在使用哪个数据库,所以我将参考SQL标准。你应该:

  • 用单引号将文字日期括起来
  • 将单词
    DATE
    前置到日期值
  • 没有必要加括号
您的SQL查询应该如下所示:

SELECT name, forname, bdate 
FROM student 
WHERE bdate between date '1990-01-01' and date '1999-12-31'
ORDER BY id

您需要使用str_to_date将日期转换使用引号
将日期括起来,并根据需要转换为日期类型,请记住
表示大于b,您的逻辑试图排除出生于90年代的学生:-)您需要使用stru to_dateUse quotes将日期转换为日期使用引号
将日期括起来,并根据需要转换为日期类型,请记住
意味着大于-btw,您的逻辑试图排除出生于90年代的学生:-)