• C#10,带来了Date和Time类型


    C#10引入了日期DateOnly,时间TimeOnly:

    //从DateTime转换
    Console.WriteLine(DateOnly.FromDateTime(DateTime.Now));
    //从字会串转换
    Console.WriteLine(DateOnly.Parse("2021-10-23"));
    //从0001-01-01到现在的天数
    Console.WriteLine(DateOnly.FromDayNumber(738085)); 
    //从DateTime转换
    Console.WriteLine(TimeOnly.FromDateTime(DateTime.Now));
    //从TimeSpan转换
    Console.WriteLine(TimeOnly.FromTimeSpan(new TimeSpan(12,12,12)));
    //从字符串转换
    Console.WriteLine(TimeOnly.Parse("12:13:14"));
    //从带格式的字t会串转换
    Console.WriteLine(TimeOnly.ParseExact("12时13分14秒","HH时mm分ss秒"));

    结果:

     由此想到数据库有Date和Time类型,能不能使用,试验一下:

    CREATE TABLE [dbo].[Test](
      [ID] [int] IDENTITY(1,1) NOT NULL,
      [CreateDate] [date] NULL,
      [CreateTime] [time](7) NULL
    ) ON [PRIMARY]

    查看ado.net下是否有效

    using var con = new SqlConnection("server=.;database=testdb;uid=sa;pwd=sa;TrustServerCertificate=True;");
    var sql = @"
    INSERT INTO [dbo].[Test]
               ([CreateDate]
               ,[CreateTime])
         VALUES
               (@CreateDate
               ,@CreateTime)";
    using var cmd = new SqlCommand(sql, con);
    con.Open();
    cmd.Parameters.Add(new SqlParameter("@CreateDate", SqlDbType.Date) { Value = DateOnly.FromDateTime(DateTime.Now) });
    cmd.Parameters.Add(new SqlParameter("@CreateTime", SqlDbType.Time) { Value = TimeOnly.FromDateTime(DateTime.Now) });
    cmd.ExecuteNonQuery();

    看来还没有适配这种类型(现在是Preivew版)

     

      想要更快更方便的了解相关知识,可以关注微信公众号 

  • 相关阅读:
    【Xamarin破解补丁找不到?】
    【Xamarin挖墙脚系列:Xamarin.Android的API设计准则】
    【给你几个使用Xamarin的理由】
    【Xamarin 跨平台机制原理剖析】
    HttpStatusCode 枚举
    C语音--static变量
    extern "c"用法
    C语言---类型转换
    VS2008资源问题解决方法
    003---hibernate主要接口介绍
  • 原文地址:https://www.cnblogs.com/ljknlb/p/16191977.html
Copyright © 2020-2023  润新知