关于SQL Server:如何仅从datetime列获取日期?

How can i obtain the date only from the datetime column?

本问题已经有最佳答案,请猛点这里访问。

我有以下问题

1
SELECT GETDATE()

我的名字是2013-11-16 03:31:07.740我只想要日期部分和省略时间部分。

我已经用过

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
select convert(varchar, getdate(), 100) convertResult,100 style union
select convert(varchar, getdate(), 101),101 union
select convert(varchar, getdate(), 102),102 union
select convert(varchar, getdate(), 103),103 union
select convert(varchar, getdate(), 104),104 union
select convert(varchar, getdate(), 105),105 union
select convert(varchar, getdate(), 106),106 union
select convert(varchar, getdate(), 107),107 union
select convert(varchar, getdate(), 108),108 union
select convert(varchar, getdate(), 109),109 union
select convert(varchar, getdate(), 110),110 union
select convert(varchar, getdate(), 111),111 union
select convert(varchar, getdate(), 112),112 union
select convert(varchar, getdate(), 113),113 union
select convert(varchar, getdate(), 114),114  union
select convert(varchar, getdate(), 120),120  union
select convert(varchar, getdate(), 121),121  union
select convert(varchar, getdate(), 126),126  union
select convert(varchar, getdate(), 127),127  union
select convert(varchar, getdate(), 130),130  union
select convert(varchar, getdate(), 131),131
order by 2

但没有任何组合只给出日期部分。


最高效的将来保持它的is a date of转换型,而不是它的字符串: </P >

1
SELECT CONVERT(DATE, GETDATE());

如果你真的想要的输出字符串的方法:什么原因 </P >

1
SELECT CONVERT(CHAR(10), GETDATE(), 120);

(有没有原则的使用VARCHAR,和方式来得到一个特定的长度的字符串的长度是一个指定的字符串。请读这段文章。) </P >

在接受和高度上voted的答案是,"建议重复-这我会担心这个问题的正则闭,由于旅鼠因子并不adequately解决这个问题。 </P >

  • 它使用的一种技术,这是一种有效的方法,在SQL Server 2000和SQL Server 2005年,但不用于SQL Server 2008年,由于以上的转换是更高效的比结婚日期(数学的差别是probably negligible,但它的原则性的东西)。 </P >

  • 它仍然时返回时,在输出(它是在午夜去大学现在)。在OP在这里不想时都包括在产出(无论是真实的或午夜时,等)。 </P >


  • 因为你是SQL Server 2008 </P >

    1
    SELECT cast(GETDATE() as DATE)


    1
    SELECT CONVERT(VARCHAR(10), GETDATE(), 101)

    时返回 </P >

    1
    2
    3
    11/15/2013

    SELECT CONVERT(VARCHAR(10), GETDATE(), 120)

    时返回 </P >

    1
    2013-11-15