1、把一个字段是否为空(null)作为查询条件时,应该用 select * from tablename where filed(字段名) is null
2、convert()函数用于把日期转换为新数据类型的通用函数
语法:
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度),即转换成的数据的类型(可以使用长度限制)。data_to_be_converted 含有需要转换的值,即需要转换的日期。style 规定日期/时间的输出格式。
可以使用的 style 值:
Style ID | Style 格式 |
---|---|
100 或者 0 | mon dd yyyy hh:miAM (或者 PM) |
101 | mm/dd/yy |
102 | yy.mm.dd |
103 | dd/mm/yy |
104 | dd.mm.yy |
105 | dd-mm-yy |
106 | dd mon yy |
107 | Mon dd, yy |
108 | hh:mm:ss |
109 或者 9 | mon dd yyyy hh:mi:ss:mmmAM(或者 PM) |
110 | mm-dd-yy |
111 | yy/mm/dd |
112 | yymmdd |
113 或者 13 | dd mon yyyy hh:mm:ss:mmm(24h) |
114 | hh:mi:ss:mmm(24h) |
120 或者 20 | yyyy-mm-dd hh:mi:ss(24h) |
121 或者 21 | yyyy-mm-dd hh:mi:ss.mmm(24h) |
126 | yyyy-mm-ddThh:mm:ss.mmm(没有空格) |
130 | dd mon yyyy hh:mi:ss:mmmAM |
131 | dd/mm/yy hh:mi:ss:mmmAM |
实例:
下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:
CONVERT(VARCHAR(19),GETDATE()) CONVERT(VARCHAR(10),GETDATE(),110) CONVERT(VARCHAR(11),GETDATE(),106) CONVERT(VARCHAR(24),GETDATE(),113)
结果:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
解析:比如select CONVERT(VARCHAR(10),GETDATE(),110) as now的结果为:12-29-2008
varchar(10)表示查询出的日期的长度为10,类型为varchar类型,110表示输出日期的格式为mm-dd-yy(参照上面的表)
应用:例如在一个表t1中sales_out_check_date字段用于存放这条记录插入的时间。则查询当天插入的记录则可使用如下语句:
select * from t1 where convert(char(10),sales_out_check_date,20)=convert(char(10),getdate(),20)
3、查询表中最后一条记录
select * from table
where rownum<(select count(*)+1 from table)
minus
select * from table
where rownum<(select count(*) from table)
也可以简化为
select * from table
minus
select * from table
where rownum<(select count(*) from table)
效果是一样的
切记rownum是伪列 只能用<
顺便给你求第X行的通用SQL语句
select * from table where rownum<X+1
minus
select * from table where rownum<X
如果id最大的那条记录是最后一条的话,也可以这样写:
select * from table where id=(select max(id) from table)