SQL中如何取得系统时间和日期(时间要求返回6位,比如152910;日期要求返回8位,比如20070517)
2010-12-20 17:51
423 查看
SQL中如何取得系统时间和日期(时间要求返回6位,比如152910;日期要求返回8位,比如20070517)
是不是有什么特定的函数?如果有,那取得系统时间和日期的函数返回类型是字符型吗?(要求是)
SQL中CONVERT转化函数的用法
CONVERT的使用方法:
////////////////////////////////////////////////////////////////////////////////////////
格式:
CONVERT(data_type,expression[,style])
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.
例子:
SELECT CONVERT(varchar(30),getdate(),102) now
结果为
now
—————————————
09/15/2001
/////////////////////////////////////////////////////////////////////////////////////
style数字在转换时间时的含义如下
————————————————————————————————-
Style(2位表示年份) | Style(4位表示年份) | 输入输出格式
————————————————————————————————-
– | 0 or 100 | mon dd yyyy hh:miAM(或PM)
————————————————————————————————-
1 | 101 | mm/dd/yy
————————————————————————————————-
2 | 102 | 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 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
————————————————————————————————-
10 | 110 | mm-dd-yy
————————————————————————————————-
11 | 111 | yy/mm/dd
————————————————————————————————-
12 | 112 | yymmdd
————————————————————————————————-
– | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制)
————————————————————————————————-
14 | 114 | hh:mi:ss:mmm(24小时制)
————————————————————————————————-
– | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制)
————————————————————————————————-
– | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)
————————————————————————————————-
SELECT replace(CONVERT(varchar(30),getdate(),102), '. ', ' ') now
SELECT replace(CONVERT(varchar(30),getdate(),108), ': ', ' ') now
select replace(replace(replace(convert(char(19),getdate(),120), '- ', ' '), ': ', ' '), ' ', ' ')
/*
————————
20070517154032
(所影响的行数为 1 行)
*/
getdate()返回是datetime型,需用convert函数转为字符型
如果时间是15:26:12,
则时间要求返回6位的样式,比如:152612,有什么办法吗?各位大哥能帮我写一个例子吗?
SELECT CONVERT(varchar(30),getdate(),102)得到的日期是不是一个总共30位的变量?
如果要得到的是8位,是不是这样写的:
select convert(varchar(8),getdate(),112)
不胜感激!
select replace(convert(varchar(8),getdate(),108), ': ', ' ')
select replace(convert(varchar(8),getdate(),108), ': ', ' ')
我能不能把这个得到的值赋给一个6位的字符变量呢?谢谢!如果要把得到的时间值赋给一个6位的又该怎么做呢?
declare
@systime varchar(6)
select @systime=replace(convert(varchar(6),getdate(),108), ': ', ' ')能这样写吗?
IF EXISTS(SELECT NAME FROM sysobjects
WHERE NAME = N 'funGetNewDate ' )
DROP FUNCTION funGetNewDate
GO
CREATE FUNCTION funGetNewDate
(
@Date DATETIME
)
RETURNS NVARCHAR(10)
AS
BEGIN
DECLARE @Year INT
DECLARE @Month INT
DECLARE @Day INT
DECLARE @NewDate NVARCHAR(10)
SET @Year = DATEPART( yyyy,@Date )
SET @Month = DATEPART( mm,@Date )
SET @Day = DATEPART( dd,@Date )
SELECT @NewDate = ( STR( @Year,4,0 )
+ N '- '
+ ( SELECT
CASE
WHEN @Month > = 10 THEN STR( @Month, 2, 0 )
WHEN @Month <10 THEN '0 ' + STR( @Month, 1, 0)
END
)
+ N '- '
+ ( SELECT
CASE
WHEN @Day > = 10 THEN STR( @Day, 2, 0 )
WHEN @Day <10 THEN '0 ' + STR( @Day, 1, 0)
END
)
)
RETURN @NewDate
END
GO
select dbo.funGetNewDate(getdate()) as 当前日期
参考下
declare
@systime varchar(6)
select @systime=replace(convert(varchar(6),getdate(),108), ': ', ' ')
有点写错了,应该是:
select @systime=replace(convert(varchar(8),getdate(),108), ': ', ' ')
谢谢各位的精彩回复!今天我学到了很多东西!
mark
create table name
(
id nvarchar2(10) primary key,
card nvarchar2(10),
dat date default ******,
sig nvarchar2(2),
check(sig=’y’ or sig=’n')
);
如何将dat 的默认值取系统时间呢?**** 出代码该如何写?
如果日期和具体时间都有 就更好啦
是不是有什么特定的函数?如果有,那取得系统时间和日期的函数返回类型是字符型吗?(要求是)
SQL中CONVERT转化函数的用法
CONVERT的使用方法:
////////////////////////////////////////////////////////////////////////////////////////
格式:
CONVERT(data_type,expression[,style])
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.
例子:
SELECT CONVERT(varchar(30),getdate(),102) now
结果为
now
—————————————
09/15/2001
/////////////////////////////////////////////////////////////////////////////////////
style数字在转换时间时的含义如下
————————————————————————————————-
Style(2位表示年份) | Style(4位表示年份) | 输入输出格式
————————————————————————————————-
– | 0 or 100 | mon dd yyyy hh:miAM(或PM)
————————————————————————————————-
1 | 101 | mm/dd/yy
————————————————————————————————-
2 | 102 | 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 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
————————————————————————————————-
10 | 110 | mm-dd-yy
————————————————————————————————-
11 | 111 | yy/mm/dd
————————————————————————————————-
12 | 112 | yymmdd
————————————————————————————————-
– | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制)
————————————————————————————————-
14 | 114 | hh:mi:ss:mmm(24小时制)
————————————————————————————————-
– | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制)
————————————————————————————————-
– | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)
————————————————————————————————-
SELECT replace(CONVERT(varchar(30),getdate(),102), '. ', ' ') now
SELECT replace(CONVERT(varchar(30),getdate(),108), ': ', ' ') now
select replace(replace(replace(convert(char(19),getdate(),120), '- ', ' '), ': ', ' '), ' ', ' ')
/*
————————
20070517154032
(所影响的行数为 1 行)
*/
getdate()返回是datetime型,需用convert函数转为字符型
如果时间是15:26:12,
则时间要求返回6位的样式,比如:152612,有什么办法吗?各位大哥能帮我写一个例子吗?
SELECT CONVERT(varchar(30),getdate(),102)得到的日期是不是一个总共30位的变量?
如果要得到的是8位,是不是这样写的:
select convert(varchar(8),getdate(),112)
不胜感激!
select replace(convert(varchar(8),getdate(),108), ': ', ' ')
select replace(convert(varchar(8),getdate(),108), ': ', ' ')
我能不能把这个得到的值赋给一个6位的字符变量呢?谢谢!如果要把得到的时间值赋给一个6位的又该怎么做呢?
declare
@systime varchar(6)
select @systime=replace(convert(varchar(6),getdate(),108), ': ', ' ')能这样写吗?
IF EXISTS(SELECT NAME FROM sysobjects
WHERE NAME = N 'funGetNewDate ' )
DROP FUNCTION funGetNewDate
GO
CREATE FUNCTION funGetNewDate
(
@Date DATETIME
)
RETURNS NVARCHAR(10)
AS
BEGIN
DECLARE @Year INT
DECLARE @Month INT
DECLARE @Day INT
DECLARE @NewDate NVARCHAR(10)
SET @Year = DATEPART( yyyy,@Date )
SET @Month = DATEPART( mm,@Date )
SET @Day = DATEPART( dd,@Date )
SELECT @NewDate = ( STR( @Year,4,0 )
+ N '- '
+ ( SELECT
CASE
WHEN @Month > = 10 THEN STR( @Month, 2, 0 )
WHEN @Month <10 THEN '0 ' + STR( @Month, 1, 0)
END
)
+ N '- '
+ ( SELECT
CASE
WHEN @Day > = 10 THEN STR( @Day, 2, 0 )
WHEN @Day <10 THEN '0 ' + STR( @Day, 1, 0)
END
)
)
RETURN @NewDate
END
GO
select dbo.funGetNewDate(getdate()) as 当前日期
参考下
declare
@systime varchar(6)
select @systime=replace(convert(varchar(6),getdate(),108), ': ', ' ')
有点写错了,应该是:
select @systime=replace(convert(varchar(8),getdate(),108), ': ', ' ')
谢谢各位的精彩回复!今天我学到了很多东西!
mark
create table name
(
id nvarchar2(10) primary key,
card nvarchar2(10),
dat date default ******,
sig nvarchar2(2),
check(sig=’y’ or sig=’n')
);
如何将dat 的默认值取系统时间呢?**** 出代码该如何写?
如果日期和具体时间都有 就更好啦
相关文章推荐
- 如何通过SQL语句修改系统日期和时间
- sql如何读取系统日期和时间
- (最优解)阿里笔试题请设计一个算法,在满足质因数仅为3,5,7或其组合的数中,找出第K大的数。比如K=1,2,3时,分别应返回3,5,7。要求算法时间复杂度最优。
- SQL 如何将getdate() 的 含有时间的格式转化为只有日期的短日期格式
- sql 时间差 sql中返回两日期的时间差
- 用JAVA轻松返回系统当前的标准日期-时间
- ios 如何获得系统时间和日期
- Oracle 在SQL语句中如何获取系统当前时间并进行操作
- 如何用SQL语句,查询数据库(日期+时间字段)中等于某一天的记录
- 取当前系统时间点日期(不包括年月)的SQL写法是怎样的?
- SQL SERVER 用sql语句如何获得当前系统时间
- ios 如何获得系统时间和日期
- SQL---NOW()函数,如何在mysql数据库中插入当前日期,当前时间
- iphone 如何获得系统时间和日期
- 【C++学习】之如何用系统日期时间给文件命名
- 如何取得系统时间
- asp.net取得系统时间日期的各种形式
- SQL SERVER 2000用sql语句如何获得当前系统时间
- ios 如何获得系统时间和日期
- SQL中返回当前日期和时间