首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql中的日期类型

MySql中的日期类型
EN

Stack Overflow用户
提问于 2013-09-01 16:47:36
回答 3查看 983关注 0票数 1

我是MySQL和C#的新手。

我将某些值存储在具有数据类型日期的列中。我不想要时间,只想把日期储存起来。在使用phpMyAdmin或MySql命令行查看这些值时,我看到它们的格式如下:

YYYY MM-DD

但是,当我将这些值检索到我的web应用程序时,它们将以以下格式显示:

YYYY-MM-DD :MM(具体时间为12:00).

这一切为什么要发生?我怎样才能防止这种情况发生呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-01 16:59:17

在获取数据时,可以使用date_format()将日期转换为您喜欢的格式。

代码语言:javascript
复制
select date_format(datecol, '%Y-%m-%d')

这将以字符串的形式返回值。

票数 1
EN

Stack Overflow用户

发布于 2013-09-01 16:53:21

在C#中存储日期字段时,使用DateTime对象。在此对象中,如果不指定时间部分,则默认值将取决于全球化。

您可以研究DateTime如何工作这里

票数 2
EN

Stack Overflow用户

发布于 2013-09-02 02:56:50

您不应该从mysql中以字符串的形式检索值。为什么?因为如果您需要对该值执行任何操作,比如添加一天,那么您将需要再次将其解析为DateTime。字符串解析可能很慢,而且当涉及日期时,它们容易出现错误,例如对mm/dd/yyyy和dd/mm/yyyy格式的错误解释。

您遇到的问题是,.NET不只是一个Date类型。它只有一个DateTime类型。因此,加载一个MySQL DATE类型,将得到一个时间部分设置为午夜的DateTime

这没有直接的问题,除了如何输出结果。如果您只调用没有任何参数的.ToString(),或者隐式地使用它作为字符串,那么您将得到一个包含完整日期和时间的结果。您只需提供一个参数来指示所需的格式设置。

在没有任何参数的情况下,您将获得通用"G"格式。这在文档这里中得到了解释。

换言之:

代码语言:javascript
复制
yourDateTime.ToString() == yourDateTime.ToString("G")

您可以阅读所有其他可用的格式,这里这里

特别是,如果您只想要日期,那么您可能需要这样做:

代码语言:javascript
复制
yourDateTime.ToString("d")

根据您的评论,您应该这样做:

MySQL查询:

代码语言:javascript
复制
SELECT Gbstartdate FROM TblGbDef

C#:

代码语言:javascript
复制
DateTime gb_start_date = (DateTime) datareader[0];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18560619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档