SQL Server日期处理datetime和date之间的相互转换
日期类型概述
SQL Server中的日期类型包括datetime和smalldatetime,仅能处理可以识别为1753年~9999年间的日期的值,没有单独的日期型或时间型。
1.datetime
datetime类型处理从1753年1月1日~9999年12月31日的日期和时间数据,精确度为百分之三秒。
即:对于0.000~0.001、0.009的日期值,调整为0.000;对于0.002~0.004的日期值,调整为0.003;对于
0.005~0.008的日期值,调整为0.007。
例如,下面的代码在输入时,其时间精确度为百分之一秒,但经数据库保存后再显示出来,其结果就已经做了处理。
DECLARE @t TABLE(date char(21))
INSERT @t SELECT '1900-1-1 00:00:00.000'
...
INSERT @t SELECT '1900-1-1 00:00:00.009'
SELECT date,转换后的日期=CAST(date as datetime) from @t
/*--结果
date 转换后的日期
---------------------------------- ----------------------------
1900-1-1 00:00:00.000 1900-01-01 00:00:00.000
...
1900-1-1 00:00:00.000 1900-01-01 00:00:00.010
--*/
datetime的存储长度为8字节,日期和时间各用4个字节存储,第一个4字节存储自1900年1月1日之前或之
后的天数(以1900年1月1日为分界点,在1900年1月1日之前的日期的天数小于0,在1900年1月1日之后的日期的天数大于0)。另外一个4字节
存储以午夜(00:00:00.000)后毫秒数所代表的每天的时间。
例如,下面的代码演示了datetime变量中,仅包含单纯的日期和单纯的时间时,日期存储的十六进制存储表示结果。
DECLARE @dt datetime
--单纯的日期
SET @dt='1900-1-2'
SELECT CAST(@dt as binary(8))
--结果: 0x0000000100000000
--单纯的时间
SET @dt='00:00:01'
SELECT CAST(@dt as binary(8))
--结果: 0x000000000000012C
2.smalldatetime
smalldatetime类型处理从1900年1月1日~2079年6月6 日的日期和时间数据,精确到分钟。29.998秒或更低的smalldatetime值向下舍入为最接近的分钟,29.999秒或更高的smalldatetime值向上舍入为最接近的分钟。
smalldatetime的存储长度为4字节,第一个2字节存储自1900年1月1日之后的天数。另外一个2字节存储午夜(00:00:00.000)后的分钟数。
例如,下面的代码演示了smalldatetime变量中,仅包含单纯的日期和单
相关文档:
1. My test: (create and grant the sysdba to a new user by SQL*Plus)
CREATE USER FJTEST1 IDENTIFIED BY JEANJEANFANG;
GRANT SYSDBA TO FJTEST;
REVOKE SYSDBA from FJTEST;
CONNECT FJTEST1/JEANJEANFANG AS SYSDBA;
2. Using ORAPWD in windows:
C:\» ORAPWD;
(show help information)
3. to see th ......
in 的话, 如果是null 就不比较了,既不是in 也不是 not in
exists的话 因为用 = 加在条件里比较了,所以 null 是 not exists
select *
from pricetemp
where cast(商品コード as varchar(10))not in(
select shohin_cd
&nbs ......
在使用SQL*Plus生成报告文件的时候,往往会因为其默认的设置导致输出的结果非常的没有可读性,下面介绍一个日常中会被用到的一个脚本,其中包含一些格式化
输出的set命令
,为了方便理解,我会在每一条set命令之后紧跟着一个简单的解释,请慢慢体会。
sqlplus -s user_name/user_password << EOF >/dev/n ......
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[pr_xls_to_tb]
@path varchar(200),--EXCEL路径名
@tbName varchar(30),--表名
@stName varchar(30) --excel中要读的SHEET名
as
declare @sql varchar(500),--最后要执行的SQL
@stName_Real varchar(35),--真正的SHEET名
......
如何把Access转成SQL Server的方法介绍
很多朋友想用SQL 2000数据库的编程方法,但是却又苦于自己是学Access的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将Access转化成SQL 2000的方法和注意事项。首先,我说的是在Access 2000,SQL 2000之间转换,其他的我也还没有尝试过,希 ......