如何使用格式日期 DD-MM-YYYY 创建查询

Posted

技术标签:

【中文标题】如何使用格式日期 DD-MM-YYYY 创建查询【英文标题】:How to create query with format date DD-MM-YYYY 【发布时间】:2016-11-04 04:00:56 【问题描述】:

我有这样的查询数据库:

SELECT * FROM TABLE WHERE start_date = '01-10-2016' //DD-MM-YYYY

但上面的代码错误,实际上数据库日期格式是YYYY-MM-DD。 那么如何创建日期格式为DD-MM-YYYY的查询呢?

【问题讨论】:

显然,你需要公开你的date列的数据类型。 我已使用列名 start_date 进行了编辑 列名无关。列的数据类型是必不可少的。 【参考方案1】:

正确的日期列 (data type date !) 没有格式。然后,为日期列正确输入数据就足够了,使用to_date() 用于非标准输入格式like @Shiva posted。或者更好的是,始终以 ISO 8601 格式 'YYYY-MM-DD' 开头的日期文字,它适用于 any 语言环境设置。

如果您正在运行一个带有日期存储为文本的损坏设计,然后结合to_date() and to_char() 将任何有效的日期格式转换为任何其他文本格式:

SELECT * FROM tbl
WHERE  start_date = to_char(to_date('01-10-2016', 'DD-MM-YYYY'), 'YYYY-MM-DD');

【讨论】:

【参考方案2】:

也许你可以使用to_date 函数将上述格式转换为标准格式。

例如,

SELECT to_date('01-10-2016', 'DD-MM-YYYY');
----------
2016-10-01
1 row

https://www.techonthenet.com/postgresql/functions/to_date.php

【讨论】:

如果我有列'start_date',如何在上面更改代码

以上是关于如何使用格式日期 DD-MM-YYYY 创建查询的主要内容,如果未能解决你的问题,请参考以下文章

将日期格式从 dd-mm-yyyy 转换为 YYMMDD [重复]

以 dd-mm-yyyy 格式获取当前日期

在Salesforce案例对象中将创建日期yyyy-mm-dd的默认格式转换为dd-mm-yyyy

Dart - 如何将 yyyy-MM-dd 中的简单日期字符串的格式更改为 dd-MM-yyyy

是否有任何方法在使用 INTL 包时将这种日期格式转换为 DD-MM-YYYY [重复]

SQL Server 没有获取日期格式 dd-mm-yyyy