我使用C#从MVC5中的文本框插入日期到数据库。我尝试只获得没有小时部分的日期,但它保存如下:10/10/2019 12:00:00 AM,当我只在文本框中输入10/10/2019。我如何格式化,所以保存它没有12:00:00 AM部分。我需要将变量作为Datetime。
这是日期属性:
public DateTime Surrender_Effective_Date { get; set; }
这是代码:
Licensedata.Surrender_Effective_Date = Convert.ToDateTime(Request["Surrender_Effective_Date"]);
我也试过这个但是相同,除了小时部分。
lALegalLicensedata.Surrender_Effective_Date = DateTime.Parse(Convert.ToDateTime(Request["Surrender_Effective_Date"]).ToShortDateString());
我的数据库表日期为字符串。我无法改变它。在我的C#中,我需要将Datetime作为其他问题。 当我调试时,我可以看到值已经是凌晨12点00分,所以如果某种方式我可以格式化并将日期部分发送到DB我应该没问题。
答案 0 :(得分:1)
将您的数据库表格列数据类型从DateTime
改为Date
..希望您的问题能解决..
如果你的列数据类型是NVarchar
或Varchar
,那么在将数据插入数据库时将其转换为字符串..
dbcommand.Parameter.Add("Surrender_Effective_Date",DBType.Nvarchar).Value=Surrender_Effective_Date.ToString("dd/MM/yyyy");
与codebehind
中的其他日期时间进行比较时仅与date
进行比较
if(Surrender_Effective_Date.Date==anotherDate.Date)
{
//Rest of code goes here
}
在UI中显示值时,您需要再次格式化
Here有更多格式可供使用
答案 1 :(得分:0)
如果您需要将列作为DateTime,那么您 - 将它与时间一起存储在数据库中,默认情况下,如果没有设置,则为午夜。这就是DateTime值的设计方式。从数据库中检索数据时,您必须执行的操作是通过将日期存储在字符串中来删除information mentioned in this SO question。
否则,将数据库中的Datetime列更改为Date列。
答案 2 :(得分:0)
如果我已经正确理解你需要覆盖ToString的行为以删除时间部分。
ABC
答案 3 :(得分:-1)
您可以使用\u65533\u0097\u65533\u0075\u0108\u65533\u0102\u0115\u65533\u65533\u0114\u65533\u65533\u0100\u65533\u0114\u0111\u65533\u0101
来显示结构TimeSpan
的时间和属性TimeOfDay
以获得时间:
DateTime