zoukankan      html  css  js  c++  java
  • 方法多种,选择随已定

    生产系统分早晚班问题,经约定,每天七点之前,所有生产记录,算前一天处理。因为系统记录产生的日期,是获取当前日期,需要改写一下,七点之前的取到的当天日期需要减去1天。解决方法可以多种,前台程序处理,或是可以数据库中处理。

    程序处理:

    GetGenerateDate
     string GetGenerateDate()
            {
                DateTime dateTime1 
    = DateTime.Now;
                DateTime dateTime2 
    = Convert.ToDateTime(dateTime1.ToString("yyyy-MM-dd"+ " " + "07:00:00");

                
    if (DateTime.Compare(dateTime1, dateTime2) < 0)
                {
                    dateTime1 
    = dateTime1.AddDays(-1);
                }

                
    return dateTime1.ToString("yyyy-MM-dd"); 
            }

    数据库端处理,和前台程序的函数基本上一样:

    udf_GetGenerateDate
     CREATE FUNCTION [dbo].[udf_GetGenerateDate]()
     
    RETURNS DATE
     
    AS
     
    BEGIN    
        
    DECLARE @d DATETIME = CURRENT_TIMESTAMP
        
    DECLARE @d2 DATETIME = CONVERT(DATETIME,CONVERT(NVARCHAR(20),CAST(@d AS DATE)) + ' ' + '07:00:00')
        
        
    --下面这个函数,可以参考链接:
        --http://www.cnblogs.com/insus/archive/2011/06/24/2089005.html
        IF ([dbo].[DateTimeCompare](@d,@d2< 0)
            
    SET @d = DATEADD(day,-1,@d)
        
        
    RETURN  CAST(@d AS TIME)
        
     
    END


    另外一种方法,也是在数据库中处理,也许要比上一个函数,简单得多,只是判断当前的时间是否是在0点到7点之间,如果是,日期减1天:

    udf_GetGenerateDate
     CREATE FUNCTION [dbo].[udf_GetGenerateDate]()
     
    RETURNS DATE
     
    AS
     
    BEGIN        
        
    DECLARE @TimeStamp TIME = '07:00:00'
        
    DECLARE @cDate DATETIME = CURRENT_TIMESTAMP
        
        
    IF (CAST(@cDate AS TIME) BETWEEN '00:00:00' AND @TimeStamp)        
            
    SET @cDate  = DATEADD(day,-1,@cDate)
        
    RETURN CAST(@cDate AS DATE)
        
     
    END
  • 相关阅读:
    Howto: (Almost) Everything In Active Directory via C#
    C#中使用Win32类库
    Use Case框图
    养成精通英语的三十个好习惯
    关于SQL2005EXPRESS默认远程无法连接的解决
    CAB之Service
    在模块中添加MVP模式兼容的视图
    SCSF 系列:Smart Client Software Factory 中 MVP 模式最佳实践
    Composite UI Application Block学习笔记之Event Broker[转载]
    老板的灵魂提问: 别人家的视频能自动播放为什么你开发的无法自动播放?为什么网页上的音视频无法自动播放了?
  • 原文地址:https://www.cnblogs.com/insus/p/2157941.html
Copyright © 2011-2022 走看看