sqlserver创建函数 用表名+年月日+4位随机数作为主键如何建立?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver创建函数 用表名+年月日+4位随机数作为主键如何建立?相关的知识,希望对你有一定的参考价值。
SELECT (表名+getdate()+cast(rand() * (1000) AS int)) as value from t_tablesqlserver 应该有一个timestamp类型 那个是秒后面6位。。。 用那个其实就可以了追问
表名缩写(3位)+年月日(8位)+自增列(4位)这个如何实现 使用函数
追答SELECT (substring(表名,0,3)+CONVERT(varchar(100), GETDATE(), 112)+cast(rand() * (1000) AS int)) as value from t_table
参考技术A select '表名'+convert(varchar,getdate(),112)+convert(varchar,cast(rand() * 10000 AS int)) 参考技术B 我最近也在用sql 一起努力啊从sqlserver数据库中提取日期,并把年月日分别截取出来
从sqlserver数据库中提取日期应该使用,并把年月日分别截取出来应该使用数据库提供的时间函数。
1:使用year,month,day用来提取年月日
如:select
year(getdate()),month(getdate()),day(getdate())
2:使用DATEPART
获取年月日
如:select
DATEPART('year',getdate()),DATEPART('month',getdate()),DATEPART('day',getdate())
----------------------------------------------------------------------------
如果字段是varchar类型的话,可以先将字段转换为日期类型。
使用类型转换函数convert或者cast
如:cast('2015-07-14'
as
datetime) 参考技术A 思路:先把日期转换成字符格式,再通过字符串操作函数截取想要的部分,最后拼凑上你要的部分
比如:a=2009-9-15
0:00:00
left(convert(varchar(20),a,120),7)+'-01
0:00:00
'
说明一下,convert这个函数强制把日期格式转换成varchar型,120是参数,按ODBC标准,yyyy-mm-dd
hh:mm:ss格式
以上是思路,你自己修改一下就可以得到你要的东西 参考技术B 可以用substring截取,也可以转换成datetime然后用year、month、day三个函数计算
以标准日期格式2012-12-19
10:50:02.000为例
substring(col,1,4)=year
substring(col,6,2)=month
substring(col,9,2)=day
year(convert(datetime,col))、month(convert(datetime,col))、day(convert(datetime,col))
以上是关于sqlserver创建函数 用表名+年月日+4位随机数作为主键如何建立?的主要内容,如果未能解决你的问题,请参考以下文章