SQL中的日期格式,更改默认语言或转换为varchar?

时间:2014-08-11 08:38:57

标签: mysql sql datetime

首先 - 我对整个数据库和SQL业务都很陌生,所以如果这篇文章看起来很荒谬,那就道歉了。但经过几天的研究,我真的陷入了困境。我希望有人能够启发我。

我为自己设定了一个实践项目 - 物业管理软件。我使用HeidiSQL作为DBMS和Eclipse / Java / JavaFX8来编写应用程序。

我遇到的问题是日期类型和格式。默认情况下,它设置为美国格式(yyyy-mm-dd),我希望它在英国格式(dd-mm-yyyy)。研究结束后,我发现有些人将默认语言改为英国英语。我试着这样做,但我失败了。我发现很多示例代码都提到了MS SQL Server - 我会更好地切换到另一个DBMS,还是不重要?我个人不知道如果使用SQL编写所有查询,但我想可能存在特定于所用程序的内部查询。此外,使用这种方法,我会更改会话,数据库或整个服务器的默认语言吗?

我发现的另一种方法是将Date转换为Varchar。我发现这很容易实现,但后来我发现并且文章说这是一个不好的做法。它几乎说日期类型是出于某种原因提供的,所以如果你需要在ur db中有一个实际日期,那么它应该是应该使用的类型,而不是Varchar。

在我的程序中,我将使用日期来执行某些操作。我正在努力得出结论我应该使用哪种方法(以及如何正确实现它)。用户将使用GUI输入日期,并且在幕后必须将其转换为正确的格式和类型。然后在数据库中(取决于方法)它将不得不再次转换。我的目标是找到最有效或接近最有效解决方案的东西。

我对数据库知之甚少 - 非常基础我在大学和我自己的研究中被认为有4个月了,所以如果有人能为我清理并与我分享专业知识和知识,我真的很感激。

2 个答案:

答案 0 :(得分:0)

我认为您可能想要使用的是str_to_date:See this

您可以通过告诉MySQL在几天,几个月和几年的位置将每个字符串转换为日期。例如:

SELECT STR_TO_DATE('31-12-2014','%d-%m-%Y');

给你:

  

'2014-12-31'

答案 1 :(得分:0)

您无法更改MySql中的日期格式。您只需在进行查询时指定日期格式。有关详细信息,请参阅MySql manual

要在查询中指定格式dd-mm-yyyy,您可以这样做:

SELECT date_format('date_field','%d/%m/%Y') as df FROM 'table'

希望这可以提供帮助。