sql语句中日期时间格式化查询

 

REPLACE(CONVERT (char(50), GETDATE(), 111), '/', '-')

解析此句:

被搜索的字符串。original-string: CONVERT (char(50), GETDATE(), 111)

要搜索并被 replace-string 替换的字符串。search-string:'/'

该字符串用于替换 search-string。replace-string:  '-'  

SQL中可以使用Replace函数来对某个字段里的某些字符进行替换操作,语法如下:

语法
REPLACE ( original-string, search-string, replace-string )

参数
如果有某个参数为 NULL,此函数返回 NULL。

original-string     被搜索的字符串。可为任意长度。

search-string     要搜索并被 replace-string 替换的字符串。该字符串的长度不应超过 255 个字节。如果 search-string 是空字符串,则按原样返回原始字符串。

replace-string     该字符串用于替换 search-string。可为任意长度。如果 replacement-string 是空字符串,则删除出现的所有 search-string。

例子:
UPDATE tableName SET recordName=REPLACE(recordName,'abc','ddd')
将表tableName中的recordName字段中的 abc 替换为 ddd

这个函数有一点不足是不支持 text,ntext类型字段的替换,可以通过下面的语句来实现:
update tableName set recordName=replace(cast(recordName as varchar(8000)) ,'abc','ddd')
通过 cast 函数把text字段的内容转换为varchar类型再进行替换

 

SQLserver中用convert函数转换日期格式

为什么我要replace将convert中的"/"符,换成"-"呢.是因为convert在这里格式化出来的时间是:2007/05/22
还要特别说明一点:convert格式化出为的时间都是带有前有0的格式,比如2007-1-1 12:12:31结果为:
2007-01-01,所以你在查询前务必要将你的日期中的月和日中小于10(不包括10)的数字加上前导0,
如:1就应该为01

Convert的使用方法:

格式: 

Convert(data_type,expression,[style])

 

说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到.

 

例子: 

Select Convert(varchar(30),getdate(),101) now
结果为

now

09/15/2001

style数字在转换时间时的含义如下: Style(2位表示年份) Style(4位表示年份) 输入输出格式
0 100 mon dd yyyy hh:miAM(或PM)
1    101 mm/dd/yy
2 102 yymmdd
3 103 dd/mm/yy
4 104 ddmmyy
5 105 ddmmyy
6 106 dd mon yy
7 107 mon dd,yy
8 108 hh:mm:ss
9 109 mon dd yyyy hh:mi:ss:mmmmAM(或PM)
10 110 mmddyy
11 111 yy/mm/dd
12 112 yymmdd
13 113 dd mon yyyy hh:mi:ss:mmm(24小时制)
14 114 hh:mi:ss:mmm(24小时制)
20 120 yyyymmdd hh:mi:ss(24小时制)
21 121 yyyymmdd hh:mi:ss:mmm(24小时制)

 

 

 


 

 

 

posted @ 2009-07-10 17:24  yitongtianxia  阅读(1380)  评论(0编辑  收藏  举报