如何仅使用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]
答案 0 :(得分:0)
我知道可以使用的2个功能: to_char ,提取
select to_char(now(), 'YYYY')
select extract(year from now())
但是如果在where子句中使用它们,则可能会出现问题。在这种情况下,您需要制作功能索引。尝试使用说明来查看结果。