2017-08-08 99 views
-1

我想创建名称为“dynamicdate”的表格,其中第一列名称是“datecolumn”,它将包含15行,即第一行应表示今天的日期,例如08//2017以下列显示后续日期例如,08/09/2017,2017年8月10日,直到第15行包含08//2017。MySQL动态日期变化

问题1:如何在连续日期的同时填充15行。现在

,例如日期成为08/09 /2017(因为8月8日结束)是today'date和08/24 /2017是第15天的日期。

问题2:我该如何动态更新数据库,即不查询数据库。

+0

将其存储在数据库中并不是最佳解决方案。如果你想动态地显示日期到任何用户界面,使其逻辑和他们不存储在分贝 –

+0

是的,这不是你通常会在数据库中处理 – Strawberry

回答

0

这可以通过创建工作来完成。每天早晚安排这份工作。 作业将执行此过程“p_Update_dynamicdate”。

create proc dbo.p_Update_dynamicdate 
as 
Begin 

    Declare @date as datetime, @count as int 
    set @date =getdate() 
    set @count =1 

    truncate table dynamicdate --Delete old data 

    while @count<=15 
    Begin 
     insert into dynamicdate(Ddate) 
     select Dateadd(d,@count,getdate()) 
     set @[email protected]+1 
    End 

End 
+0

此过程还将删除与数据库相关的数据日期 – praveen

+0

是的,但他只有表中的唯一日期。如果其他列在那里,那么他需要更新而不是截断。他可以根据自己的需要修改程序。 –

0

问题的解决方案#1: 已经解决了在计算器上:

MySQL - How can I add consecutive dates to many existing records?

问题的解决方案#2: 请看看时间表和事件的MySQL文档:

语法:CREATE EVENT my_event

ON SCHEDULE

EVERY 1 DAY 

STARTS '2014-04-30 00:20:00' ON COMPLETION PRESERVE ENABLE 

DO #你的更新查询

请参阅下面的类似问题的解决方案链接:

How to schedule a MySQL query?

+0

非常感谢你 – praveen