数据库中的字段DATE具有以下格式:
2012-11-12 00:00:00
我想从日期中删除时间并返回日期,如下所示:
11/12/2012
最佳答案
首先,如果您的日期是 varchar 格式,请更改它,store dates as dates它会为您省去很多麻烦,而且最好尽早完成。问题只会变得更糟。
其次,一旦有了日期,请勿将日期转换为 varchar!保持日期格式,并在应用程序端使用格式来获取所需的日期格式。
根据您的 DBMS 有多种方法可以执行此操作:
<小时/>SQL-Server 2008 及更高版本:
SELECT CAST(CURRENT_TIMESTAMP AS DATE)
<小时/>
SQL-Server 2005 及更早版本
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, CURRENT_TIMESTAMP), 0)
<小时/>
SQLite
SELECT DATE(NOW())
<小时/>
甲骨文
SELECT TRUNC(CURRENT_TIMESTAMP)
<小时/>
Postgresql
SELECT CURRENT_TIMESTAMP::DATE
<小时/>
如果您需要在报告中使用特定于文化的格式,您可以明确说明接收文本框的格式(例如 dd/MM/yyyy),也可以设置语言,以便显示相关的日期格式那种语言。
无论哪种方式,这在 SQL 之外都可以更好地处理,因为在 SQL 中转换为 varchar 会影响您在报告中可能执行的任何排序。
如果您不能/不会将数据类型更改为 DATETIME,则在发送到报表服务并按所述处理之前,仍将其转换为 SQL 中的日期(例如 CONVERT(DATETIME, yourField)
)如上所述。
关于sql - 如何从日期时间中删除时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14279849/