我们如何将字符串转换为日期时间并将其存储在varchar中?
本文关键字:存储 varchar 日期 字符串 转换 我们 时间 | 更新日期: 2023-09-27 18:08:16
我在mysql数据库中使用varchar[1000]
。我想将日期时间存储在该列中。然后我需要将其转换为datatime
并将其存储在varchar
中。能否在varchar
中转换存储?
如有错误,敬请原谅。
要清楚,您不是在varchar
列中存储DateTime
值。你在存储字符串值。这些字符串值可能包含数字字符或特定的字符序列,人们可以将其解释为特定的东西(例如日期和/或时间),但它们仍然只是字符串。
因此,为了将值转换为字符串,您可以从.ToString()
方法开始。对于基本类型(如整数和日期时间值),这将返回该类型的字符串表示形式。对于复杂类型,它将返回类名,因此您需要在该类中重写它。
您可以使用自定义字符串格式进一步细化日期和时间值的字符串表示。
正如其他人在评论中提到的那样,您真的应该重新考虑您的方法。然而,varchar
需要一个字符串,而不是日期时间,所以只保存datetime
值的string
表示,不需要转换。
做一个varchar(10) maybe然后在你的c#代码中:
date.ToString("yyyy/MM/dd");
你可以这样设置你的日期格式。
varchar(1000)
没有意义。如果您将日期和时间存储为字符串,则不需要超过15-20个字符(根据日期格式可能更少)。
您应该使用CAST
运算符将datetime
值强制转换为字符串:
CAST(dt AS varchar)
如果您需要生成组合来自多个字段的数据的输出,您可能希望使用一个视图来组合您想要放在一起的值,而不是在数据表中专用一个1000个字符的字段。(提示:使用concat()
函数连接多个字符串)