-6

varchar[1000]在mysql数据库中使用。我想将日期时间存储在该列中。然后我需要将其转换为并将其datatime存储在varchar. 我们可以转换并存储在varchar.

如有错误请见谅。任何帮助表示赞赏

4

4 回答 4

1

需要明确的是,您没有DateTime值存储在varchar列中。您正在存储字符串值。这些字符串值可能包含数字字符或特定的字符序列,人们可能会将其解释为特定的东西(例如日期和/或时间),但它们仍然只是字符串。

所以,为了把一个值变成一个字符串,你从方法.ToString()开始。对于原始类型(例如整数和日期时间值),这将返回该类型的字符串表示。对于复杂类型,它将返回类的名称,因此您需要在该类中覆盖它。

您可以使用自定义字符串格式进一步细化日期和时间值的字符串表示。

于 2013-04-08T13:16:50.607 回答
0

正如评论中的其他人所提到的,您真的应该在这里重新考虑您的方法。但是, avarchar需要一个字符串,而不是日期时间,因此只需保存string您的datetime值的表示,无需转换。

于 2013-04-08T13:13:49.733 回答
0

做一个 varchar(10) 可能然后在你的 C# 代码中:

date.ToString("yyyy/MM/dd"); 

你可以像这样格式化你的日期。

于 2013-04-08T13:15:45.710 回答
0

varchar(1000)没有意义。如果您将日期和时间存储为字符串,则不需要超过 15-20 个字符(可能更少,具体取决于日期格式)。

您应该使用CAST运算符将datetime​​值转换为字符串:

CAST(dt AS varchar)

如果您需要生成组合来自多个字段的数据的输出,您可能希望使用一个视图来组合您想要放在一起的值,而不是在数据表中专门使用 1000 个字符的字段。(提示:使用该concat()函数连接多个字符串。)

于 2013-04-08T16:35:57.277 回答