SQL 语句 生成当前时间 年月日小时分钟 再加4个随机数的字符串。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 语句 生成当前时间 年月日小时分钟 再加4个随机数的字符串。相关的知识,希望对你有一定的参考价值。

比如:201103070915加4个随机数2315 结果为2011030709152315
DECLARE @rand 。。。。。。
SET @rand 。。。。。。。。。。。。。
结果要为narvchar字符串

我今天都在线

--测试环境sql2005 2005以下版本可能存在问题
--在自定义函数中不能使用日期函数getdate(),所以这里要建一个视图用来返回当前时间
go
if object_id('viewNow') is not null
begin
drop view viewNow
end
go
Create View viewNow
as
select getdate() as now

--在自定义函数中不能使用函数rand()所以这里要建立一个视图来返回4位随机数字
go
if object_id('viewRandNumber') is not null
begin
drop view viewRandNumber
end
go
Create View viewRandNumber
as
select CEILING(RAND()*10000) as RandNumber

--建立自定义函数
go
if object_id('GenerateCode') is not null
begin
drop function GenerateCode
end
go
create function GenerateCode()
returns varchar(16)
as
begin
declare @now datetime
select @now=now from viewNow
declare @nowVarchar varchar(12)
set @nowVarchar=convert(varchar(8),@now,112)+replace(convert(varchar(8),@now,108),':','')
declare @RandNumber int
select @RandNumber=RandNumber from viewRandNumber
return @nowVarchar+convert(varchar(4),@RandNumber)
end

--测试结果
select dbo.GenerateCode() as code

--code
2011030710478029
参考技术A DECLARE @rand NVARCHAR(16)

SET @rand = REPLACE(CONVERT(NVARCHAR(16), GETDATE(), 120), '-', '');
SET @rand = REPLACE(@rand, ' ', '');
SET @rand = REPLACE(@rand, ':', '');
SET @rand = @rand + CAST(FLOOR ((RAND() * 900 + 100)) AS NVARCHAR(3));

PRINT @rand本回答被提问者采纳
参考技术B select convert(char(19),getdate(),112) 参考技术C declare @autoNo as nvarchar(15)
set @autoNo = CONVERT(nvarchar(10), GETDATE(),112) +cast(DATENAME(HOUR,GETDATE()) as nvarchar)+ cast(DATENAME(MINUTE,GETDATE()) as nvarchar) + right('0000' + CAST( cast(rand()*10000 as int) as nvarchar),4)
print @autoNo

java获取当前年月日 小时 分钟 秒 毫秒

public class Test {
    /**
     * 英文简写(默认)如:2010-12-01
     */
    public static String FORMAT_SHORT = "yyyy-MM-dd";
    /**
     * 英文全称  如:2010-12-01 23:15:06
     */
    public static String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss";
    /**
     * 精确到毫秒的完整时间    如:yyyy-MM-dd HH:mm:ss.S
     */
    public static String FORMAT_FULL = "yyyy-MM-dd HH:mm:ss.S";
    /**
     * 中文简写  如:2010年12月01日
     */
    public static String FORMAT_SHORT_CN = "yyyy年MM月dd";
    /**
     * 中文全称  如:2010年12月01日  23时15分06秒
     */
    public static String FORMAT_LONG_CN = "yyyy年MM月dd日  HH时mm分ss秒";
    /**
     * 精确到毫秒的完整中文时间
     */
    public static String FORMAT_FULL_CN = "yyyy年MM月dd日  HH时mm分ss秒SSS毫秒";
 
 
    public static void main(String[] args) {
        System.out.println(getTimeString());
        System.out.println("返回日期年份:"+getYear(new Date()));
        System.out.println("返回月份:"+getMonth(new Date()));
        System.out.println("返回当天日份"+getDay(new Date()));
        System.out.println("返回当天小时"+getHour(new Date()));
        System.out.println("返回当天分"+getMinute(new Date()));
        System.out.println("返回当天秒"+getSecond(new Date()));
        System.out.println("返回当天毫秒"+getMillis(new Date()));
 
    }
 
 
 
    /**
     * 获取当前时间
     */
    public static String getTimeString() {
        SimpleDateFormat df = new SimpleDateFormat(FORMAT_FULL);
        Calendar calendar = Calendar.getInstance();
        return df.format(calendar.getTime());
    }
 
    /**
     * 获取日期年份
     * @param date 日期
     * @return
     */
    public static String getYear(Date date) {
        return format(date).substring(0, 4);
    }
    /**
     * 功能描述:返回月
     *
     * @param date
     *            Date 日期
     * @return 返回月份
     */
    public static int getMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.MONTH) + 1;
    }
 
    /**
     * 功能描述:返回日期
     *
     * @param date
     *            Date 日期
     * @return 返回日份
     */
    public static int getDay(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.DAY_OF_MONTH);
    }
 
    /**
     * 功能描述:返回小时
     *
     * @param date
     *            日期
     * @return 返回小时
     */
    public static int getHour(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.HOUR_OF_DAY);
    }
 
    /**
     * 功能描述:返回分
     *
     * @param date
     *            日期
     * @return 返回分钟
     */
    public static int getMinute(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.MINUTE);
    }
 
    /**
     * 返回秒钟
     *
     * @param date
     *            Date 日期
     * @return 返回秒钟
     */
    public static int getSecond(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.SECOND);
    }
 
    /**
     * 功能描述:返回毫
     *
     * @param date
     *            日期
     * @return 返回毫
     */
    public static long getMillis(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.getTimeInMillis();
    }
}

原文:https://blog.csdn.net/xuforeverlove/article/details/81565173

以上是关于SQL 语句 生成当前时间 年月日小时分钟 再加4个随机数的字符串。的主要内容,如果未能解决你的问题,请参考以下文章

sql截取日期/时间的单独部分,比如年月日小时分钟等等

怎么在jsp页面上得到当前的年月日小时分秒

Linux打印显示当前时间和实现自动关机

以小时和分钟获取当前时间

iOS 时间以及时间戳的各种方法

想用sql语句实现:查询出在最近10分钟(或一段时间区间内)插入数据库某个表的所有数据。