IFF函数是什么里的,sql server 日期函数里有这个函数吗

SQL SERVER里面有没有类似于DECODE的函数
[问题点数:0分]
SQL SERVER里面有没有类似于DECODE的函数
[问题点数:0分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。SQL Date 函数
SQL Date 函数
当我们处理日期时,最难的任务恐怕是确保所插入的日期的格式,与数据库中日期列的格式相匹配。
只要数据包含的只是日期部分,运行查询就不会出问题。但是,如果涉及时间,情况就有点复杂了。
在讨论日期查询的复杂性之前,我们先来看看最重要的内建日期处理函数。
MySQL Date 函数
下面的表格列出了 MySQL 中最重要的内建日期函数:
返回当前的日期和时间
返回当前的日期
返回当前的时间
提取日期或日期/时间表达式的日期部分
返回日期/时间按的单独部分
给日期添加指定的时间间隔
从日期减去指定的时间间隔
返回两个日期之间的天数
用不同的格式显示日期/时间
SQL Server Date 函数
下面的表格列出了 SQL Server 中最重要的内建日期函数:
返回当前日期和时间
返回日期/时间的单独部分
在日期中添加或减去指定的时间间隔
返回两个日期之间的时间
用不同的格式显示日期/时间
SQL Date 数据类型
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
YEAR - 格式 YYYY 或 YY
SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: 唯一的数字
SQL 日期处理
如果不涉及时间部分,那么我们可以轻松地比较两个日期!
假设我们有下面这个 &Orders& 表:
ProductName
electrograph
现在,我们希望从上表中选取 OrderDate 为 && 的记录。
我们使用如下 SELECT 语句:
SELECT * FROM Orders WHERE OrderDate=''
ProductName
electrograph
现在假设 &Orders& 类似这样(请注意 &OrderDate& 列中的时间部分):
ProductName
electrograph
如果我们使用上面的 SELECT 语句:
SELECT * FROM Orders WHERE OrderDate=''
那么我们得不到结果。这是由于该查询不含有时间部分的日期。
提示:如果您希望使查询简单且更易维护,那么请不要在日期中使用时间部分!sql server里面和wmsys.wm_concat()函数相等的函数方法是什么?有吗?_百度知道
sql server里面和wmsys.wm_concat()函数相等的函数方法是什么?有吗?
提问者采纳
没有用过,不过你可以自己写一个这样的存储函数就可以了,很简单的
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~I can't do it
比如在emp表中,有DEPTNO,ENAME等字段,一个DEPTNO对应多个员工姓名;你就写一个函数F,函数的传入参数为deptno,在函数中,建立一个游标SELECT ENAME FROM EMP WHERE DEPTNO=@P_DEPTNO,然后遍历游标,同时连接字符串,然后返回;SELECT DISTINCT(DEPTNO),F(DEPTNO) FROM EMP;可能就是你要的结果了
提问者评价
嗯,是这样解决的,其他的懒得弄了
来自团队:
其他类似问题
为您推荐:
concat的相关知识
其他1条回答
com/gaizai//gaizai/blogs?SQL Server 动态行转列(参数化表名、分组列://www://www?在SQL SERVER里的.html" target="_blank">http、字段值) - 听风吹雨 - 博客园<a href="blogs、行转列字段你说的是行转列的语法么.html这个是SQL SERVER里的行专列的总结
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁SQL Server 中几个有用的特殊函数 - 钢钢 - 博客园
在SQL Server 的使用过程中,发现几个很有用,但不太常用(或细节不太清楚)的函数(存储过程):
isnumeric,isdate,patindex,newid,collate,sp_executesql,checksum
遂记下,以备日后查询。不敢独享,与君共之。有用且看,无用略过。
1& isnumeric( expression )
-- 返回值 1 | 0,判断是否是数字类型。
数值类型包括(int、bigint、smallint、tinyint、numeric、money、smallmoney、float、decimal、real)
select&*&from&tablename
where&isnumeric(columnname)&&&1;
以上示例使用 isnumeric 返回所有非数值的数据行。
2& isdate( expression )
-- 如果 expression 是有效的 date、time 或 datetime 值,则返回 1;否则返回 0。
if&isdate('&10:19:41.177')&=&1
&&&&print&'有效的日期'
&&&&print&'无效的日期'
上面的示例使用 isdate 测试某一字符串是否是有效的 datetime。
3& patindex( '%pattern%' , expression )
-- 返回指定表达式中某模式第一次出现的起始位置;
-- 如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
'pattern' : 一个通配符字符串。pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。
expression : 通常为要在其中搜索指定模式的字符串数据类型列。
select&patindex('%BB%','AA_BB_CC_DD_AA_BB_CC_DD')
--&返回:4
上面示例返回的是第一个&#8216;BB&#8217;的开始位置。
其实,使用 charindex 函数也能实现上面示例的查询,如下:
select&charindex('BB','AA_BB_CC_DD_AA_BB_CC_DD')
patindex 函数与 charindex 函数的区别:
select&patindex('%[0-9][A-Z]%',&'AA_BB_9C_DD_AA_9F_CC_DD')
--&返回:7&
select&charindex('%[0-9][A-Z]%','AA_BB_9C_DD_AA_9F_CC_DD')
--&返回:0
看出来没有?patindex 函数可以使用通配符,而charindex 函数不能。也就是说:patindex 函数功能更强大!
4& newid( )
-- 创建 uniqueidentifier 类型的唯一值。
这个函数总是能返回一个新的GUID号码,它永远不会重复,而且毫无规律。
declare&@myid&uniqueidentifier
set&@myid&=&newid()
print&'@myid&的值是:&'+&convert(varchar(255),&@myid)
--&@myid&的值是:&0B7-485E-884B-5BEB1699CFEE
5& collate
-- 一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则转换。
collate 子句只能应用于 char、varchar、text、nchar、nvarchar 和 ntext 数据类型。
drop&table&#tempTalbe
create&table&#tempTalbe
&&&_id&&&&int,
&&&_name&&varchar(30)
insert&into&#tempTalbe&values(1,'中');
insert&into&#tempTalbe&values(2,'国');
insert&into&#tempTalbe&values(3,'人');
select&*&from&#tempTalbe
order&by&_name
collate&latin1_general_cs_as_ks_ws&asc;
/* 显示结果:
_id&&&&&&&&&_name
-----------&------------------------------
1&&&&&&&&&&&中
2&&&&&&&&&&&国
3&&&&&&&&&&&人
select&*&from&#tempTalbe&
order&by&_name&
collate&Chinese_PRC_CS_AS_KS_WS&asc;
/* 显示结果:
_id&&&&&&&&&_name
-----------&------------------------------
2&&&&&&&&&&&国
3&&&&&&&&&&&人
1&&&&&&&&&&&中
可以执行系统函数 fn_helpcollations 来检索 Windows 排序规则和 SQL Server 排序规则的所有有效排序规则名称的列表:
select&*&from&fn_helpcollations()
6&&sp_executesql 存储过程
建议您在执行字符串时,使用 sp_executesql 存储过程而不要使用 execute 语句。
由于此存储过程支持参数替换,因此 sp_executesql 比 execute 的功能更多;
由于 sql server 更可能重用 sp_executesql 生成的执行计划,因此 sp_executesql 比 execute 更有效。
create&table&#tb_suer(&id&int)
insert&into&#tb_suer&values(1234)
declare&@tbname&nvarchar(20)
declare&@sql&nvarchar(500)
set&@tbname='#tb_suer'
set&@sql='select&*&from&'&+&@tbname
execute&sp_executesql&@sql
-----------
上面示例演示了SQL语句的拼接。
7&&checksum
--& 返回按照表的某一行或一组表达式计算出来的校验和值。 checksum 用于生成哈希索引。
checksum ( * | expression [ ,...n ] )
*&&& 指定对表的所有列进行计算。如果有任一列是非可比数据类型,则 checksum 返回错误。
&&&&& 非可比数据类型有 text、ntext、image、xml 和 cursor,还包括以上述任一类型作为基类型的 sql_variant。
expression&&& 除非可比数据类型之外的任何类型的表达式。
--&找出在T1有,T表没有的记录。
select&*&from&t1&where&checksum(*)&not&in&(&select&checksum(*)&from&t&)
上面示例,等于是把t1表里的一行数据hash和t表一行数据hash后相比,就是说两个表里有没有行完全相当的。
随笔 - 302
评论 - 1409SQLsever里有没有类似instr这样的与字符串有关的函数?
[问题点数:100分,结帖人sayfree]
SQLsever里有没有类似instr这样的与字符串有关的函数?
[问题点数:100分,结帖人sayfree]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年4月 MS-SQL Server大版内专家分月排行榜第二
2012年5月 MS-SQL Server大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 sql server 时间函数 的文章

 

随机推荐