SQL2008复制只同步最近30天的数据该怎么做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL2008复制只同步最近30天的数据该怎么做相关的知识,希望对你有一定的参考价值。

我之前做了行筛选,使用datediff(day,cdt,getdate())<=30只同步最近30天的,如果今天是2016-08-01,即只同步7月2号之后的数据,但是这样做的话等过了几天同步,订阅端的数据还是有7月2号的数据,无法保持只有一个月的数据

参考技术A 将你的筛选语句做成系统执行文件,做成完整的一套,每次需要使用的时候执行一下就可以了,麻烦一次,以后就都不需要麻烦了,我上一家公司都是这样做的,每次执行文件就可以了。追问

能说下具体怎么做吗

追答

你不是会对数据塞选吗,做好塞选的sql ,然后全部写好,每次用的时候执行这些SQL,就可以得到你想要的东西了

参考技术B 你可以先DELETE FROM TABLE 然后再添加数据。追问

不太明白,能说的再具体点吗

追答

你是用存储过程同步还是什么?在存储过程中加如delete from where table datediff(day,cdt,getdate())>30

追问

用的复制,我标题上有写

追答

你咋复制的?从一个表到另一个表吗?

如何在 Django 中显示今天、昨天和过去 7 天的数据?

【中文标题】如何在 Django 中显示今天、昨天和过去 7 天的数据?【英文标题】:How to display data Today, Yesterday and last 7 Days in Django? 【发布时间】:2021-01-09 07:39:19 【问题描述】:

我想显示todayyesterday 和最后一个7 days 的数据,请告诉我该怎么做。

我正在尝试这个....但它只显示最近 7 天的数据,但我想根据 todayyesterdaylast 7 days 在我的 HTML 文件中显示数据 这是我的views.py 文件..

def myview(request):
  datas= Mymodel.objects.filter(created_on_gte=datetime.now()- 
  timedelta(days=7)).count()
  context= 'datas':datas
  return render(request, 'test.html', context

这是我的test.html 文件,我在其中显示数据...

<p>datas today</p>
<p>datas Yesterday</p>
<p>datas Last 7 Days</p>

【问题讨论】:

created_on 的字段类型是什么? DateFieldDateTimeField? 这是一个DateTimeField 字段... 【参考方案1】:

这个查询将给出一个聚合结果并在模板中适当地使用它

from django.utils import timezone
from datetime import timedelta
from django.db import models

now = timezone.now()
Mymodel.objects.aggregate(
    today=models.Count('id', filter=models.Q(created_on__date=now.date())),
    yesterday=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(hours=24)).date())),
    last_7_day=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(days=7)).date())),
)

更新

from django.utils import timezone
from datetime import timedelta


def myview(request):
    now = timezone.now()
    result = Mymodel.objects.aggregate(
        total=models.Count('id'),
        today=models.Count('id', filter=models.Q(created_on__date=now.date())),
        yesterday=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(hours=24)).date())),
        last_7_day=models.Count('id', filter=models.Q(created_on__date__gte=(now - timedelta(days=7)).date())),
    )
    context = 'result': result
    return render(request, 'test.html', context)

然后在你的模板中,

<p> result.today  today</p>
<p> result.yesterday  Yesterday</p>
<p> result.last_7_day  Last 7 Days</p>

【讨论】:

我将如何根据todayyesterdaylast 7 days 在我的html 上显示 将数据作为上下文变量传递到模板中。 What is context in Django 我用视图更新了我的任务,请检查并告诉我 它给了我0 所有todayyesterdaylast 7 days 的结果【参考方案2】:

试试这样的:

from django.shortcuts import render

def days(request):
    
    week = Mymodel.objects.filter(created_on_gte=datetime.now()-timedelta(days=7)).count()
    yesterday = Mymodel.objects.filter(created_on_gte=datetime.now()-timedelta(days=1)).count()
    today = Mymodel.objects.filter(created_on_gte=datetime.now())

    context = 
        'week': week,
        'yesterday' : yesterday,
        'today' : today,
    
return render(request, 'days.html', context)

.html

<p>today today</p>
<p>yesterday Yesterday</p>
<p>week Last 7 Days</p>

【讨论】:

以上是关于SQL2008复制只同步最近30天的数据该怎么做的主要内容,如果未能解决你的问题,请参考以下文章

求数据库中离当前时间30天的序列 SQl语句

通过SQL Server 2008数据库复制实现数据库同步备份

sqlserver2008 局域网内异机备份,该怎么解决

怎么复制sqlserver数据库里所有的表到另一个数据库中

SQL Server 跨服务器同步或定时同步数据库

sql server 2008 主从数据库 中断后怎么同步