sql中datetime转换成varchar字符型多种方法

写了这个小桌面程序,以帮助我记得是什么风格112没有,或如何得到HH:MM AM / PM一个DATETIME列。基本上,它是有效的样式编号填充一个表,然后通过这些循环,并产生每个样式的结果(和产生这一结果的语法),鉴于当前的日期和时间。
是的,它使用游标。这是一个辅助功能,不是你会使用生产环境中的一部分,所以我不认为对性能的影响应该是一个大问题。但如果你有

 代码如下 复制代码

USE tempdb;
GO
CREATE PROCEDURE dbo.help_DateTimeFormats
    @styleID TINYINT = NULL
AS
BEGIN
    SET NOCOUNT ON;
    IF OBJECTPROPERTY
    (
        OBJECT_ID('dbo.DateTimeFormats'),
        'IsUserTable'
    ) = 1
    BEGIN
        DROP TABLE dbo.DateTimeFormats;
    END
    CREATE TABLE dbo.DateTimeFormats 
    ( 
        styleID TINYINT PRIMARY KEY, 
        outputLength TINYINT,
        outputSyntax VARCHAR(64),
        outputSample VARCHAR(255)
    );
    INSERT dbo.DateTimeFormats(styleID, outputLength)
        SELECT style = 0, outputLength = 19
        UNION SELECT 1, 8 
        UNION SELECT 2, 8 
        UNION SELECT 3, 8 
        UNION SELECT 4, 8 
        UNION SELECT 5, 8 
        UNION SELECT 6, 9 
        UNION SELECT 7, 10 
        UNION SELECT 8, 8 
        UNION SELECT 9, 26 
        UNION SELECT 10, 8 
        UNION SELECT 11, 8 
        UNION SELECT 12, 6 
        UNION SELECT 13, 24 
        UNION SELECT 14, 12 
        UNION SELECT 20, 19 
        UNION SELECT 21, 23 
        UNION SELECT 22, 20 
        UNION SELECT 23, 10 
        UNION SELECT 24, 8 
        UNION SELECT 25, 23 
        UNION SELECT 100, 19 
        UNION SELECT 101, 10 
        UNION SELECT 102, 10 
        UNION SELECT 103, 10 
        UNION SELECT 104, 10 
        UNION SELECT 105, 10 
        UNION SELECT 106, 11 
        UNION SELECT 107, 12 
        UNION SELECT 108, 8 
        UNION SELECT 109, 26 
        UNION SELECT 110, 10 
        UNION SELECT 111, 10 
        UNION SELECT 112, 8 
        UNION SELECT 113, 24 
        UNION SELECT 114, 12 
        UNION SELECT 120, 19 
        UNION SELECT 121, 23
        UNION SELECT 126, 23
        UNION SELECT 130, 32
        UNION SELECT 131, 25;
    IF CHARINDEX('SQL Server 2005', @@VERSION) > 0 
        INSERT dbo.DateTimeFormats(styleID, outputLength)
            SELECT 127, 23; -- 127 is new in 2005
    UPDATE dbo.DateTimeFormats 
        SET outputSyntax = 'CONVERT(CHAR('
            + RTRIM(outputLength) + '), CURRENT_TIMESTAMP, '
            + RTRIM(styleID) + ')';
    DECLARE
        @sql VARCHAR(1024),
        @style TINYINT,
        @syntax VARCHAR(64);
    DECLARE c CURSOR
        LOCAL FORWARD_ONLY STATIC READ_ONLY FOR 
        SELECT styleID, outputSyntax 
            FROM dbo.DateTimeFormats;
    OPEN c; FETCH NEXT FROM c INTO @style, @syntax;
    WHILE (@@FETCH_STATUS = 0)
    BEGIN
        SET @sql = 'UPDATE dbo.DateTimeFormats
            SET outputSample = ' + @syntax + '
            WHERE styleID = ' + RTRIM(@style) + ';';
        EXEC(@sql);
        FETCH NEXT FROM c INTO @style, @syntax;
    END
    CLOSE c; DEALLOCATE c;
    SELECT
        styleID,
        outputSample,
        outputSyntax
    FROM
        dbo.DateTimeFormats
    WHERE
        styleID = COALESCE(@styleID, styleID); 
    DROP TABLE dbo.DateTimeFormats; 
END
GO
EXEC dbo.help_DateTimeFormats;
EXEC dbo.help_DateTimeFormats @styleID = 112;
-- DROP PROCEDURE dbo.help_DateTimeFormats;

The output should look like this: 

0

Feb 22 2006 4:26PM
CONVERT(CHAR(19), CURRENT_TIMESTAMP, 0)

1
02/22/06
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 1)

2
06.02.22
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 2)

3
22/02/06
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 3)

4
22.02.06
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 4)

5
22-02-06
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 5)

6
22 Feb 06
CONVERT(CHAR(9), CURRENT_TIMESTAMP, 6)

7
Feb 22, 06
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 7)

8
16:26:08
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 8)

9
Feb 22 2006 4:26:08:020PM
CONVERT(CHAR(26), CURRENT_TIMESTAMP, 9)

10
02-22-06
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 10)

11
06/02/22
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 11)

12
060222
CONVERT(CHAR(6), CURRENT_TIMESTAMP, 12)

13
22 Feb 2006 16:26:08:020
CONVERT(CHAR(24), CURRENT_TIMESTAMP, 13)

14
16:26:08:037
CONVERT(CHAR(12), CURRENT_TIMESTAMP, 14)

20
2006-02-22 16:26:08
CONVERT(CHAR(19), CURRENT_TIMESTAMP, 20)

21
2006-02-22 16:26:08.037
CONVERT(CHAR(23), CURRENT_TIMESTAMP, 21)

22
02/22/06 4:26:08 PM
CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22)

23
2006-02-22
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23)

24
16:26:08
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 24)

25
2006-02-22 16:26:08.037
CONVERT(CHAR(23), CURRENT_TIMESTAMP, 25)

100
Feb 22 2006 4:26PM
CONVERT(CHAR(19), CURRENT_TIMESTAMP, 100)

101
02/22/2006
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 101)

102
2006.02.22
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 102)

103
22/02/2006
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 103)

104
22.02.2006
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 104)

105
22-02-2006
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 105)

106
22 Feb 2006
CONVERT(CHAR(11), CURRENT_TIMESTAMP, 106)

107
Feb 22, 2006
CONVERT(CHAR(12), CURRENT_TIMESTAMP, 107)

108
16:26:08
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 108)

109
Feb 22 2006 4:26:08:067PM
CONVERT(CHAR(26), CURRENT_TIMESTAMP, 109)

110
02-22-2006
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 110)

111
2006/02/22
CONVERT(CHAR(10), CURRENT_TIMESTAMP, 111)

112
20060222
CONVERT(CHAR(8), CURRENT_TIMESTAMP, 112)

113
22 Feb 2006 16:26:08:067
CONVERT(CHAR(24), CURRENT_TIMESTAMP, 113)

114
16:26:08:067
CONVERT(CHAR(12), CURRENT_TIMESTAMP, 114)

120
2006-02-22 16:26:08
CONVERT(CHAR(19), CURRENT_TIMESTAMP, 120)

121
2006-02-22 16:26:08.080
CONVERT(CHAR(23), CURRENT_TIMESTAMP, 121)

126
2006-02-22T16:26:08.080
CONVERT(CHAR(23), CURRENT_TIMESTAMP, 126)

127
2006-02-22T16:26:08.080
CONVERT(CHAR(23), CURRENT_TIMESTAMP, 127)

130
24 ???? 1427 4:26:08:080PM
CONVERT(CHAR(32), CURRENT_TIMESTAMP, 130)

131
24/01/1427 4:26:08:080PM
CONVERT(CHAR(25), CURRENT_TIMESTAMP, 131)

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索varchar转换datetime、sql varchar datetime、字符串转换为datetime、datetime转换成字符串、字符串转换datetime,以便于您获取更多的相关知识。

时间: 2024-09-20 07:39:58

sql中datetime转换成varchar字符型多种方法的相关文章

android中String转换成16进制的方法

问题描述 android中String转换成16进制的方法 想请教一下?把一个24个字节的字符串转换成16进制,并把结果打印出来要怎么写,网上有一些方法但是没有说转换完的16进制串打印出来要用哪个参数?求指点 解决方案 byte[] b = ""字符串"".getBytes();foreach (byte i : b){if (i < 16) System.out.print(""0"" + Integer.toHexS

Sql中将datetime转换成字符串的方法(CONVERT)_MsSql

一.回顾一下CONVERT()的语法格式:CONVERT (<data_ type>[ length ], <expression> [, style])二.这里注重说明一下style的含义:style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式:一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varc

Sql中将datetime转换成字符串的方法(CONVERT)

一.回顾一下CONVERT()的语法格式:CONVERT (<data_ type>[ length ], <expression> [, style]) 二.这里注重说明一下style的含义:style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式:一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,var

string-Android中Editable转换成字符

问题描述 Android中Editable转换成字符 比如说,获取EditText的内容 EditText et_content = (EditText)findViewById(R.id.content); String content = et_content.getText().toString(); 我查看到getText()返回的是Editable,为什么Editable可以通过toStirng()转换成String类型? 解决方案 EditText 中getText @Overrid

c++-MFC 中 CString转换成char[]数组

问题描述 MFC 中 CString转换成char[]数组 环境为vs2010 CString szText; char a[1024]; edit1.GetWindowText(szText);//获取edit1编辑框的文本 怎么将CString类 szText 转换为char[]数组的内容? memcpy(a,szText,1024);只能读取文本的第一个字符 解决方案 MFC不建议用char类型了,你用TCHAR,宽字符的处理速度还快些 解决方案二: memcpy(a,(const cha

将二进制字符转换成普通字符(multipart/form-data取出)

form-data|multipart|二进制|转换 <%response.expires=0'目的:将二进制字符转换成普通字符Function bin2str(binstr)Dim varlen,clow,ccc,skipflagskipflag=0ccc = ""varlen=LenB(binstr)For i=1 To varlenIf skipflag=0 Thenclow = MidB(binstr,i,1)If AscB(clow) > 127 Thenccc

怎么将Word中文字转换成表格?

  在使用office软件时,常常会在Word中加入表格,这时候我们一般想到的是,建立表格,然后一格一格的填写;或者用Excel表格制作在复制到Word文档中.其实在Word中就可以将文本文档转换成电子表格,此文将告诉你文本文档如何轻松转换成电子表格. Word文档中,用户可以很容易地将文字转换成表格.其中关键的操作是使用分隔符号将文本合理分隔.Word能够识别常见的分隔符,例如段落标记(用于创建表格行).制表符和逗号(用于创建表格列). 一.将Word中文字转换成表格(以Word2003为例)

SQL Server把单个用户转换成多个用户的方法_mssql2008

今天在SQL Server2008中恢复一个数据库,发现上面老是显示"单个用户"字样,还有错误提示,其他的数据库都是正常的,我分析此数据库可能之前被分配了用户权限导致,下面就教大家将单个用户转换成多个用户的方法. 打个SQL查询分析器,在里面输入如下命令后执行即可: 复制代码 代码如下: ALTER DATABASE [数据库名] SET MULTI_USER

python将字符实体引用转换成 Unicode 字符

HTML Entities 的格式如:<,NCR 的格式如:< 或 <,均都表示"<" 字符. HTML 中规定了 Character entity references,在 "24.2.1 The list of characters" 列出了 HTML Entities 和 NCR 的对应关系,例如: <!ENTITY nbsp   CDATA " " -- no-break space = non-breaki