我有一个具有以下结构的数据库,我试图从这个表中获取所有行,基于使用timestamp列上的where传递月份和年份(这将是一个unix标准时间戳)
e.g month - 3, year - 2018 // get all rows for March 2018 only.
// db structure
id, timestamp, post_title
答案 0 :(得分:1)
如果你想使用unix时间戳给定月份的行,我建议:
where timestamp >= unix_timestamp('2018-03-01') and
timestamp < unix_timestamp('2018-04-01')
如果您传递的是变量,我建议您在月份的第一天传递并执行:
where timestamp >= unix_timestamp(?) and
timestamp < unix_timestamp(? + interval 1 month)
答案 1 :(得分:1)
使用转换功能
SELECT * FROM dbo.YourTable WHERE CONVERT(VARCHAR(5),DATEPART(mm,timestamp))+'-'+CONVERT(VARCHAR(5),DATEPART(yy,timestamp)) ='3-2018'
答案 2 :(得分:1)
我想这可以帮到你。
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;