• ADADADADAD

    PGSQL怎么查询最近N天的数据及SQL语句实现替换字段内容的方法[ mysql数据库 ]

    mysql数据库 时间:2024-11-25 13:36:58

    作者:文/会员上传

    简介:

    1、用SQL查询最近N天的数据思路:先获取当前的时间,然后更具当前时间去减去对应的天数,就可以得到需要的天数了。然后用这些天数作为条件,然后即可查询出需要多少天的数据了。--

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    1、用SQL查询最近N天的数据

    思路:先获取当前的时间,然后更具当前时间去减去对应的天数,就可以得到需要的天数了。然后用这些天数作为条件,然后即可查询出需要多少天的数据了。

    --获取当前时间SELECTCURRENT_TIMESTAMP;--或SELECTnow();selectCURRENT_TIMESTAMP::DATEAS"当前日期";SELECTCURRENT_DATE;selectCURRENT_TIMESTAMP::TIMEAS"当前时间";SELECTCURRENT_TIME;

    最近N天

    --最近7天SELECTDATE(T)ASDAYFROMgenerate_series((CURRENT_TIMESTAMP-INTERVAL'6day')::DATE,CURRENT_TIMESTAMP::DATE,'1days')AST;

    当然6 day、1 day这些也是可修改的;

    --统计最近30、7、昨天、今天的数据SELECTcount(*)ASAllData,count(*)filter(WHEREcreate_timeBETWEEN(SELECTCURRENT_DATE-INTERVAL'30day')ANDCURRENT_DATE)ASLast30DayData,count(*)filter(WHEREcreate_timeBETWEEN(SELECTCURRENT_DATE-INTERVAL'7day')ANDCURRENT_DATE)ASLast7DayData,count(*)filter(WHEREcreate_timeBETWEEN(SELECTCURRENT_DATE-INTERVAL'1day')ANDCURRENT_DATE)ASYesterdayData,count(*)filter(WHEREcreate_time>=CURRENT_DATE)AStodayAddDataFROMtable_name;

    实例如下:查询lic_plate字段不为空和为空的最近7天的数据

    --查询lic_plate字段不为空的最近7天的数据selectcount(tn.lic_plate)ASnumber,tn.create_timeASpercentagefromtable_nametnwheretn.create_timein(SELECTDATE(T)ASDAYFROMgenerate_series((CURRENT_TIMESTAMP-INTERVAL'6day')::DATE,CURRENT_TIMESTAMP::DATE,'1days')AST)ANDlic_plateisnotnullgroupbytn.create_timeorderbytn.create_time;--查询lic_plate字段为空的最近7天的数据selectcount(id)ASnumber,CSQV.create_timeASpercentagefrom(select*fromtable_nametnwherelic_plateisnull)ASCSQVwhereCSQV.create_timein(SELECTDATE(T)ASDAYFROMgenerate_series((CURRENT_TIMESTAMP-INTERVAL'6day')::DATE,CURRENT_TIMESTAMP::DATE,'1days')AST)groupbyCSQV.create_time;
    2、用SQL语句实现替换字段里的内容

    思路:使用替换函数替换即可

    --替换语句update表名set替换字段名=replace(替换字段名,'被替换内容','替换内容');

    实例如下:将 my_test 表的 test_content字段内容进行替换

    updatemy_testsettest_content=replace(test_content,'1','18');

    替换函数:如果没有可以创建,创建函数如下:

    --replacealloccurrencesinstringofold_substrwithnew_substr--auto-generateddefinitioncreatefunctionreplace(text,text,text)returnstextimmutablestrictcost1languageinternalas$$begin--missingsourcecodeend;$$;commentonfunctionreplace(text,text,text)is'replacealloccurrencesinstringofold_substrwithnew_substr';
    3、SQL将查询结果赋值
    --查询表数据,给test_content字段并赋值selecttest_id,test_code,'测试数据'test_contentfrommy_test;--查询表数据给自定义ABCD字段并赋值selecttest_id,test_code,'测试数据'ABCDfrommy_test;
    4、SQL查询字段内容为 NULL值时候赋值
    selecttest_id,test_code,COALESCE(test_content,'测试数据')ABCDfrommy_test;--||selecttest_id,test_code,CASEWHENtest_contentISNOTNULLTHENtest_contentELSE'测试数据'ENDABCDfrommy_test;
    热门标签: pgsqlsql