我想根据发布日期从SQL中过滤数据库中的一组特定数据,是的,我正在开发一个电影站点。我想获取那些将来将以ASC顺序排在顶部的数据,然后是过去的数据,我的意思是以DESC顺序发布的数据,并在StackOverflow社区的帮助下得到。但是感觉就像我有另一个问题,我想要的是,超过其发布日期的数据,它将在前15天保持最高状态,然后遵循我最初说的规则。
我的表结构:
from PIL import Image
# Save your plot as png file (option "Download as png" in upper-left corner)
PNG_FILE = 'horizontal-bar.png'
PDF_FILE = 'horizontal-bar.pdf'
rgba = Image.open(PNG_FILE)
rgb = Image.new('RGB', rgba.size, (255, 255, 255)) # white background
rgb.paste(rgba, mask=rgba.split()[3]) # paste using alpha channel as mask
rgb.save(PDF_FILE, 'PDF', resolution=100.0)
我一直在用它来将ASC顺序的即将到来的数据保持在顶部,然后在rel_date之前以DESC顺序发布了数据
CREATE TABLE `movies` (
`id` int(255) NOT NULL,
`title` varchar(255) NOT NULL,
`imdbID` varchar(255) NOT NULL,
`poster` varchar(255) NOT NULL,
`year` varchar(255) NOT NULL,
`rel_date` date NOT NULL,
`main_menu_id` int(255) NOT NULL
)
--
ALTER TABLE `movies`
ADD PRIMARY KEY (`id`);
ALTER TABLE `movies`
MODIFY `id` int(255) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=131;
COMMIT;
现在,我希望发布的数据在前15天保持在顶部,然后按照我最近的代码进行操作。 我知道这是一个可怕的描述,因为这是我的第一篇文章。抱歉。
答案 0 :(得分:0)
我在Postgresql中创建了此代码,但是您需要将now()转换为mysql。
create table test ( id serial, release date );
insert into test (release) values ( to_date('01/04/2019', 'dd-mm-yyyy') );
insert into test (release) values ( to_date('02/04/2019', 'dd-mm-yyyy') );
insert into test (release) values ( to_date('03/04/2019', 'dd-mm-yyyy') );
insert into test (release) values ( to_date('15/04/2019', 'dd-mm-yyyy') );
insert into test (release) values ( to_date('16/04/2019', 'dd-mm-yyyy') );
insert into test (release) values ( to_date('17/04/2019', 'dd-mm-yyyy') );
select
release
from (
(
select
0 priority,
release
from test
where
release >= (now() - INTERVAL '15 DAY')::date
)
union
(
select
1 priority,
release
from test
where
release < (now() - INTERVAL '15 DAY')::date
)) foo
order by
priority;