C# 同步工作站与SQL服务器的时间,设置本机时间

简介: 本文转载:http://www.csframework.com/archive/2/arc-2-20130101-1971.htm C# Code:///  /// 设置本机时间 ///  public class LocalTimeSync{   [DllImport("Kernel32.

本文转载:http://www.csframework.com/archive/2/arc-2-20130101-1971.htm

 

C# Code:

///   <summary>  
///  设置本机时间 
///   </summary>  
public  class LocalTimeSync
{
   [DllImport( " Kernel32.dll ")]
    public  static  extern  bool SetSystemTime( ref SystemTime sysTime);
   
   [DllImport( " Kernel32.dll ")]
    public  static  extern  void GetSystemTime( ref SystemTime sysTime);
   
   [StructLayout(LayoutKind.Sequential)]
    public  struct SystemTime
   {
       public  ushort wYear;
       public  ushort wMonth;
       public  ushort wDayOfWeek;
       public  ushort wDay;
       public  ushort wHour;
       public  ushort wMinute;
       public  ushort wSecond;
       public  ushort wMiliseconds;
   }
    ///   <summary>  
   
///  设置本机时间 
   
///   </summary>  
    public  static  void SyncTime(DateTime currentTime)
   {
      SystemTime sysTime =  new SystemTime();
      sysTime.wYear = Convert.ToUInt16(currentTime.Year);
      sysTime.wMonth = Convert.ToUInt16(currentTime.Month);
      sysTime.wDay = Convert.ToUInt16(currentTime.Day);
      sysTime.wDayOfWeek = Convert.ToUInt16(currentTime.DayOfWeek);
      sysTime.wMinute = Convert.ToUInt16(currentTime.Minute);
      sysTime.wSecond = Convert.ToUInt16(currentTime.Second);
      sysTime.wMiliseconds = Convert.ToUInt16(currentTime.Millisecond);
      
       // 处理北京时间 
       int nBeijingHour = currentTime.Hour -  8;
       if (nBeijingHour <=  0)
      {
         nBeijingHour =  24;
         sysTime.wDay = Convert.ToUInt16(currentTime.Day -  1);
          // sysTime.wDayOfWeek = Convert.ToUInt16(current.DayOfWeek - 1); 
      }
       else
      {
         sysTime.wDay = Convert.ToUInt16(currentTime.Day);
         sysTime.wDayOfWeek = Convert.ToUInt16(currentTime.DayOfWeek);
      }
      sysTime.wHour = Convert.ToUInt16(nBeijingHour);
      
      SetSystemTime( ref sysTime); // 设置本机时间 
   }
}

// 来源:C/S框架网(www.csframework.com) QQ:1980854898





 
C# Code:


///   <summary>  
///  同步服务器时间 
///   </summary>  
public  void SyncServerTime()
{
    string sql =  " SELECT GETDATE() ";
    object o = DataProvider.Instance.ExecuteScalar(Globals.DEF_ATTEND_SYSTEM_DB, sql);
   DateTime dt = ConvertEx.ToDateTimeEx(o);
    // LocalTimeSync.SyncTime(dt); 
   
   
// 比较时间一致性 
    if (ConvertEx.ToCharYYYYMMDDHHMM(DateTime.Now) != ConvertEx.ToCharYYYYMMDDHHMM(dt))
   LocalTimeSync.SyncTime(dt); // 同步服务器的时间 
}

 

目录
相关文章
|
SQL Oracle 关系型数据库
MySQL的sql_mode模式说明及设置
MySQL的sql_mode模式说明及设置
1567 112
简单练习Microsoft SQL Server MERGE同步两个表
【10月更文挑战第13天】本文介绍了在Microsoft SQL Server中使用`MERGE`语句同步两个表的步骤。首先创建源表`SourceTable`和目标表`TargetTable`并分别插入数据,然后通过`MERGE`语句根据ID匹配行,实现更新、插入和删除操作,最后验证同步结果。此方法可根据需求调整以适应不同场景。
648 1
|
SQL 存储 Unix
Flink SQL 在快手实践问题之设置 Window Offset 以调整窗口划分如何解决
Flink SQL 在快手实践问题之设置 Window Offset 以调整窗口划分如何解决
436 2
|
存储 SQL 数据库连接
C#程序调用Sql Server存储过程异常处理:调用存储过程后不返回、不抛异常的解决方案
本文分析了C#程序操作Sql Server数据库时偶发的不返回、不抛异常问题,并提出了解决思路。首先解析了一个执行存储过程的函数`ExecuteProcedure`,其功能是调用存储过程并返回影响行数。针对代码执行被阻塞但无异常的情况,文章总结了可能原因,如死锁、无限循环或网络问题等。随后提供了多种解决方案:1) 增加日志定位问题;2) 使用异步操作提升响应性;3) 设置超时机制避免阻塞;4) 利用线程池分离主线程;5) 通过信号量同步线程;6) 监控数据库连接状态确保可用性。这些方法可有效应对数据库操作中的潜在问题,保障程序稳定性。
1002 11
|
SQL XML Java
六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
560 0
|
SQL 存储 数据库
SQL部分字段编码设置技巧与方法
在SQL数据库管理中,设置字段的编码对于确保数据的正确存储和检索至关重要
1001 9
|
SQL
开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql
开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql
351 1
|
SQL 数据库
SQL-serve数据库不能连接本地服务器的解决方案
SQL-serve数据库不能连接本地服务器的解决方案
1703 1
|
SQL 弹性计算 资源调度
云服务器 ECS产品使用问题之bin/spark-sql --master yarn如何进行集群模式运行
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
SQL 安全 Oracle
SQL Server 链接服务器(Linked Servers)
【9月更文挑战第12天】SQL Server 的链接服务器功能强大,可让你在一个实例中访问其他数据源,包括其他 SQL Server 实例、Oracle 数据库等。它支持数据集成、分布式查询和数据同步,无需复制数据。创建链接服务器需在 SQL Server Management Studio 中进行,并配置名称、类型及安全性。使用时需注意权限、性能和安全性问题,确保系统稳定和数据安全。
1162 0