当我将日期和时间转换为仅时间时,单元格变为只读

时间:2013-03-05 12:16:52

标签: c# database date

我想了解这背后的概念。

我在c#中创建一个数据库。现在,我希望只有日期而不是日期和时间。

所以,我在sql查询窗格中找到了以下命令:

SELECT CONVERT(varchar, deal_start_date, 101) AS 'deal_start_date' FROM client

所需的结果出现,但数据变为只读,因此无法编辑。

The result is per this snap

此外,它不会永久保留。我的意思是, 再次点击show table data时,会显示日期时间格式。

任何人都可以告诉我为什么单元格变为只读以及如何通过UI永久保留更改?

非常感谢。

2 个答案:

答案 0 :(得分:2)

我对只读部分的猜测是,由于您现在正在转换原始值,因此您将松开指向数据库中列的链接。就像无法编辑计算列一样(例如,如何从定义为A+B as 'C'的查询中写入列。

在GUI中显示哪种类型的组件?也许您可以将查询保留为SELECT deal_start_date FROM client,并从组件中过滤掉时间部分?

或者,如果您未在应用程序的任何其他位置使用该时间,请将数据库中的datetime列更改为date

答案 1 :(得分:0)

我没有得到完美答案,但我找到了另一种选择。我在MS SQL数据库中尝试使用datetime数据类型。当我将其更改为varchar(12)时,我得到了所需的结果。即日期格式。 (感谢ØyvindKnobloch-Bråthen提供的见解)

这实际上不合适,因为varchar中的大小为12,时间部分被截断。 (如果varchar的大小增加,则会出现时间部分) 但这符合我的目的。

但我还在等待正确答案,如果有的话。