如何仅在“timestamp”字段

时间:2015-12-04 16:46:48

标签: node.js postgresql

如何仅使用postgresql在timestamp字段中的特定年份(q1)或年份和月份(q2)中选择行

CREATE TABLE IF NOT EXISTS "Article"(
"ArticleId" SERIAL NOT NULL,
"ReleaseDate" timestamp without time zone,
...

PRIMARY KEY ("ArticleId")
);

代码(带nodejs)

Q 1

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]

1 个答案:

答案 0 :(得分:0)

我知道可以使用的2个功能: to_char 提取

select to_char(now(), 'YYYY')
select extract(year from now())

但是如果在where子句中使用它们,则可能会出现问题。在这种情况下,您需要制作功能索引。尝试使用说明来查看结果。