如何仅在 C# 上的日期时间获取日期并将其放入数据库

How to get the date only on datetime on c# and putnit on database

我正在开发一个信息系统,为教师收集学生信息。其中一部分是通过 command.parameters.addwithvalue 输出数据库上日期时间选择器的值。所以我问是否有任何方法可以解析 datetime oicker,以便只有日期出现在数据库上。当前,显示日期和时间(设置日期和 12:00:00 上午。

在SQL2016年,如果您不需要时间,可以使用数据类型date代替datetime。如果该列的数据类型是 datetime,您将始终有一个与之关联的时间(如果您只为该值提供 SQL 日期,它会将时间设置为午夜 - 00:00:00) .

SQL 中的日期和时间数据类型:https://docs.microsoft.com/en-us/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql?view=sql-server-2016#DateandTimeDataTypes

如果您不想(或者如果您不能)更改数据库中的数据类型,那么在 C# 端,您至少可以确保将所有时间都规范化为午夜使用 ControlName.Value.Date 的日期时间选择器,其中 ControlName 是您的日期时间选择器控件的名称。 (将所有时间标准化为午夜可以使 SQL 当您真正需要的只是日期但又受困于日期时间数据类型时,查询编写更容易)

DateTime.Date 属性 在 .net 中: https://docs.microsoft.com/en-us/dotnet/api/system.datetime.date?view=netframework-4.7.2

我也有针对此问题的 C# 函数;

    public String ArrangeDate (string S) 
    {
        FirstPoint = S.IndexOf(".");
        SecondPoint =S.IndexOf(".",FirstPoint+1); 
        S= S.Substring(SecondPoint+1,4) + "-" +S.Substring(FirstPoint+1,SecondPoint-FirstPoint-1)+ "-" + S.Substring(0,FirstPoint);
        return S;
        }

将 datetimepicker 文本发送到存储过程,如带有时间的 varchar 参数。 并像这样在 SP 中解析它

    create SP 
    @Date varchar(50)
    as

      declare @DateX smalldatetime

      select @DateX=Convert(smalldatetime,substring(@Date,7,4)  +'-' + substring(@Date,4,2) +'-' + substring(@Date,1,2))