gpt4 book ai didi

c# - 将 DateTime 格式化为 MySql 日期

转载 作者:行者123 更新时间:2023-12-01 00:54:48 26 4
gpt4 key购买 nike

我有一个 ASP.Net 应用程序。我在后端使用 MySql。我有 3 个问题。

我在 MySql 中有一个名为 BeginDate 的字段,它的数据类型为:日期。它以以下格式写入数据库:2012-06-17

当我编写一个选择语句并将日期拉入表单 View 文本框时,格式更改为:06/17/2012 12:00:00 AM

当我尝试更新日期时,我收到一条错误消息,指出第 1 行的日期格式错误。

很公平。我输入与数据库中存储的格式相同的格式:2012-06-17

并且更新有效。

我感到困惑的地方是,如果格式起源于:数据库中的 2012-06-17

  1. 为什么 asp.net 会翻转它并将其格式化为:06/17/2012 12:00:00 AM,而我没有明确告诉它这样做。为什么它返回原始数据库格式?

  2. 如何告诉 Mysql 接受这种格式,06/17/2012 而不会收到错误?

  3. 我需要截断显示在文本框中的时间戳。我只想要日期。

添加注释。日期由 Ajax 控件日历选择器设置,它会格式化它:2012-06-17没有时间戳。这就是我想要的。

**编辑这是我的更新命令和参数:

 Update discount set DiscountPromotionalID = @DiscountPromotionalID,
isActive =@isActive, Title = @Title, BeginDate = @BeginDate, EndDate = @EndDate,
DiscountPercentage = @DiscountPercentage
where DiscountPromotionalID = @DiscountPromotionalID;"

<UpdateParameters>
<asp:Parameter Name="oDiscountPromotionalID" Type="Int32" />
<asp:Parameter Name="oisActive" Type="Object" />
<asp:Parameter Name="oTitle" Type="String" />
<asp:Parameter Name="oBeginDate" Type="DateTime" />
<asp:Parameter Name="EndDate" Type="DateTime" />
<asp:Parameter Name="oDiscountPercentage" Type="Decimal" />
</UpdateParameters>

最佳答案

日期没有“格式”;他们只是一个值(value)。当 ASP.NET 显示 DateTime 值而不显示 format 时指定后,它使用运行它的机器(在本例中为服务器)的默认格式。在您的情况下,默认格式为 "MM/DD/YYYY hh:mm:ss tt"。由于您的 MySQL 字段是日期(无时间),因此包含时间组件会导致错误。

在发送回 MySQL 之前,格式化 DateTime 以去除时间部分。既然你没有详细说明你是如何执行更新的(SQL 连接?参数)?我无法举出具体的例子。

更新

尝试使用 DATE提取 DateTime 值的日期部分的函数:

Update discount set 
DiscountPromotionalID = @DiscountPromotionalID,
isActive = @isActive,
Title = @Title,
BeginDate = DATE(@BeginDate),
EndDate = DATE(@EndDate),
//etc.

关于c# - 将 DateTime 格式化为 MySql 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com