【发布时间】:2019-09-16 19:03:03
【问题描述】:
在 MySql 中,我在我的 PC 上将日期设置为格式 yyyy-mm-dd,这是我在查看 MySql 表中的数据时看到的格式。当我阅读日期并使用时:
DateTime.ParseExact(tempActiveSince, "yyyy/MM/dd hh:mm:ss tt", null).ToString("dd MMMM yyyy");
完美运行。但是现在已经将它部署到生产机器上,MySql 中的日期格式并没有改变,但是当我从数据库中读取时:
string tempActiveSince = reader["activesince"].ToString();
我收到日期格式错误。当我打印出 tempActiveSince 的结果时,我得到了 dd/mm/yyyy 的格式。我已确保生产机器上的区域设置与我的电脑一致,但仍然不正确。
有人对我如何解决这个问题有指导意见吗?
谢谢
【问题讨论】:
-
为什么要将日期读入字符串?您应该将日期保留为日期(或日期时间)数据类型,并在演示文稿中保留格式(显示在屏幕上、报告中等)。
-
日期没有格式——它们只是一个数值——所以它不能改变。格式只是将日期显示给人们以便他们阅读的方式。如果您“在 MySQL 中将日期设置为 yyyy-mm-dd”,听起来您正在存储一个字符串,这几乎总是一个坏主意。
-
“activesince”列的类型到底是什么?我希望它不是 varchar
-
该列的日期类型不是字符串