【发布时间】:2015-12-05 06:33:44
【问题描述】:
如何使用 postgresql 在 timestamp 字段中仅选择特定年份 (q1) 或年份和月份 (q2) 中的行
表格
CREATE TABLE IF NOT EXISTS "Article"(
"ArticleId" SERIAL NOT NULL,
"ReleaseDate" timestamp without time zone,
...
PRIMARY KEY ("ArticleId")
);
代码(使用 nodejs)
q1
var releaseDateY = [2015,1990];
// ??
// var query = 'SELECT * FROM "Article" WHERE "ReleaseDate" IN (';
// for (var i = 0; i < releaseDateY.length; i++) {
// if (i > 0) {
// query += ',';
// }
// query += '$' + (i + 1);
// }
// query += ')';
var params = releaseDateY;
q2
var releaseDateY = [2015,1990];
var releaseDateM = [1,3];
// ??
// var query = 'SELECT * FROM "Article" WHERE "ReleaseDate" IN (';
// for (var i = 0; i < releaseDateY.length; i++) {
// if (i > 0) {
// query += ',';
// }
// query += '$' + (i + 1);
// }
// query += ')';
// var ii = i;
// for (var i = 0; i < releaseDateM.length; i++) {
// if (i > 0) {
// query += ',';
// }
// query += '$' + (i + 1);
// }
// query += ')';
var params = [];
params.push(releaseDateY);
params.push(releaseDateM);
// params [2015,1990,1,3]
【问题讨论】:
-
where extract(year from releasedate) in (2012,2013,2014) -
@a_horse_with_no_name 感谢您的回复,如果像 q2 一样需要选择年份和月份怎么做
-
extract(month from releasedate) = 1: postgresql.org/docs/current/static/… -
@a_horse_with_no_name 像这样?
WHERE extract(year from "ReleaseDate") IN (2012,2013) AND extract(month from "ReleaseDate") IN (1,12) -
它有效!谢谢!!
标签: node.js postgresql