【发布时间】:2018-02-25 11:03:24
【问题描述】:
我在 SQL Server 中有两列。我有一个 SQL 批量插入,它在数据库中以下列格式存储日期:
第一列类型是
DATETIME- 它以这种格式存储日期:2018-07-02 00:00:00.000第二列类型是
DATE,它存储这种格式:2018-07-02
以下部分没有使用批量插入。
当我插入新日期时,它的格式正在改变。我的 C# 中有以下代码用于第一列和第二列
DateTime.ParseExact(txtODR.Text, "dd/MM/yyyy", null);
DateTime.ParseExact(txtWorkCompDt.Text, "dd/MM/yyyy", null);
当我查看SQL Server时,它以这种方式存储"2018-02-07 00:00:00.000" and "2018-02-07"
为什么当我尝试从 C# (2018-07-02 00:00:00.000 & 2018-07-02) 插入/更新时它没有以所需的格式存储。这里有什么问题?请帮帮我
SQL 代码
DECLARE @P_ORDER_RECIVED_DATE NVARCHAR(100) = '2018/15/02'
UPDATE [dbo].[T_INSTALATION]
SET [Order_Recieved_Date] = CONVERT(VARCHAR,@P_ORDER_RECIVED_DATE, 123)
where Order_Install_ID = '161'
【问题讨论】:
-
Dates are not stored with display format in SQL Server。您的样本数据中的日期可能会被替换为
July 2nd 2018或February 7th 2018。尝试使用15/07/2018之类的日期进行检查。 -
What is wrong here您未能显示从 C# 插入/更新的代码。 -
Order_Recieved_Date列的数据类型是什么? -
日期时间是类型
-
据我所知,SQL Server 中不支持年-日-月格式。要解析 2018/15/02,您必须手动提取日月等部分
标签: c# sql-server