我在mysql数据库中使用varchar[1000]
。我想将日期时间存储在该列中。然后我需要将其转换为datatime
并将其存储在varchar
中。我们可以转换并存储在varchar
。
对不起,如果有任何错误。任何帮助表示赞赏
答案 0 :(得分:1)
要清楚,您不在DateTime
列中存储varchar
值。您正在存储字符串值。这些字符串值可能包含数字字符或特定的字符序列,人们可能将其解释为特定的字符(例如日期和/或时间),但它们仍然只是字符串。
因此,为了将值转换为字符串,您可以从the .ToString()
method开始。对于基本类型(例如整数和日期时间值),这将返回该类型的字符串表示形式。对于复杂类型,它将返回类的名称,因此您需要在该类中覆盖它。
您可以使用custom string formatting进一步细化日期和时间值的字符串表示形式。
答案 1 :(得分:0)
正如评论中的其他人所提到的,你真的应该重新考虑你的方法。但是,varchar
需要字符串,而不是日期时间,因此只需保存string
值的datetime
表示,无需转换。
答案 2 :(得分:0)
也许做一个varchar(10) 然后在你的C#代码中:
date.ToString("yyyy/MM/dd");
您可以像这样格式化日期。
答案 3 :(得分:0)
varchar(1000)
毫无意义。如果您将日期和时间存储为字符串,则不需要超过15-20个字符(可能更少,具体取决于日期格式)。
您应该使用CAST
运算符将datetime
值转换为字符串:
CAST(dt AS varchar)
如果需要生成组合来自多个字段的数据的输出,则可能需要使用组合要放在一起的值的视图,而不是在数据表中专用1000个字符的字段。 (提示:使用concat()
函数连接多个字符串。)