SQL,如何修剪日期以排除时间?

时间:2013-12-06 17:06:08

标签: sql-server date casting

对于我的查询,我必须从表中提取日期,但它们也包括时间。如何修剪以不包括时间?

CAST(m.START_DATE AS varchar(12)) AS StartDate

但是会发生什么,我的结果显示为“2013年6月12日”。如何更改它以显示为2013年6月12日?

4 个答案:

答案 0 :(得分:3)

您可以使用cast-to-date函数去除时间部分:

SELECT CAST(m.START_DATE AS DATE)

您可能会发现阅读有关CONVERT功能的信息非常有用:

MSDN Link

例如:

SELECT CONVERT(varchar(10),m.START_DATE,102)

这有助于您以自己喜欢的方式格式化日期。

答案 1 :(得分:2)

您可以尝试DATE()功能 所以它会是

SELECT DATE(m.START_DATE)

这适用于MySQL

对于SQL Server,请尝试:

SELECT CONVERT(date, m.START_DATE)

答案 2 :(得分:1)

您可以使用SQL Server中的DATETIME数据类型从DATE字段中删除时间:

SELECT CAST(m.START_DATE AS DATE) AS StartDate

对于格式化,您可以使用CONVERT()并找到适合您所使用的格式类型的代码,但如果您使用的是SQL Server 2012,则可以使用方便的FORMAT()函数:< / p>

SELECT FORMAT(m.START_DATE,'MM/dd/yyyy')

值得注意的是FORMAT()很慢,我不会将它用于格式化输出以外的任何内容,这在大多数情况下最好在SQL(表示层)之外完成。

答案 3 :(得分:0)

尝试如下..它会帮助你...

在SQL SERVER中 - &gt; SELECT CONVERT(varchar(10),datestring,101)

在MYSQL中 - &gt; SELECT STR_TO_DATE(datestring, '%M/%d/%Y')

在Oracle中 - &gt; SELECT to_char(datestring,'MM/DD/YYYY')