如何在sql server中把数据库中的日期字段转换为短日期格式

能否举个例子呀?如数据库中的字段begintime为2007-4-18 17:37,怎样获得begintime为2007-4-18,谢谢

用CONVERT 可以实现

使用 CONVERT:

CONVERT (data_type[(length)], expression [, style])

参数
expression

是任何有效的 Microsoft® SQL Server™ 表达式。有关更多信息,请参见表达式。

data_type

目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。

length

nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。

style

日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。

在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-13
CONVERT (data_type[(length)],expression[,style])

style 参数的定义如下:
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

例如
SELECT CONVERT(varchar(100), GETDATE(), 0): 05 28 2015 07:57AM
SELECT CONVERT(varchar(100), GETDATE(), 1): 05/28/15
SELECT CONVERT(varchar(100), GETDATE(), 2): 15.05.28

getdate() 可以替换成你数据库中的日期字段
第2个回答  2007-04-19
select convert(date,getdate())

例如
select getdate()
结果为
getdate(*)
'2007-04-19 15:15:36.046000'

select convert(date,getdate())
结果是:
getdate(*)
'2007-04-19'
第3个回答  2007-04-19
select convert(varchar(40),begintime,112) from table

我的这个还不是例子吗?晕