在SQL Server中将'2018-07-02 00:01:22.000'转换为'02 -Jul-18'

时间:2018-07-18 05:08:11

标签: sql sql-server date time sql-server-2012

我打算在SQL Server中将'2018-07-02 00:01:22.000'转换为'02-Jul-18'。我已经使用基本的SQL Server CONVERT()函数尝试了以下可能性,但无法获得解决方案。

SELECT CONVERT(varchar(11), transfer_date, 106) 

DECLARE @Date AS DateTime = '2018-07-02 00:01:22.000'
SELECT CONVERT(varchar(12), @Date, 106)

4 个答案:

答案 0 :(得分:1)

以下查询将有助于以DD-Mon-YY格式返回DateTime:

DECLARE @Date AS DateTime = '2018-07-02 00:01:22.000';
SELECT REPLACE(CONVERT(VARCHAR(9), @Date, 6), ' ', '-');

结果:

02-Jul-18

答案 1 :(得分:0)

尝试下面的代码行:

declare @Date as DateTime='2018-07-02 00:01:22.000'

select REPLACE(Convert(varchar(12),@Date,106),' ','-')

答案 2 :(得分:0)

如果要将 string '2018-07-02 00:01:22.000'转换为 string '02-Jul-18',则必须使用CONVERT两次,一次将输入带日期,然后第二次将日期带回您想要的格式的字符串。

SELECT
    REPLACE(CONVERT(varchar,
                    CONVERT(datetime, '2018-07-02 00:01:22.000', 121),
                    106), ' ' , '-');

enter image description here

Demo

请注意,如果您的起始值已经是日期时间,则可以取消对CONVERT的调用之一:

SELECT REPLACE(CONVERT(varchar, transfer_date, 106), ' ' , '-');

答案 3 :(得分:0)

您可以尝试这样的事情:

import sys
import os.path,subprocess

def execute_java():
    java_class,ext = os.path.splitext(java_file)
    cmd = ['java',"-jar pdfbox-app-2.0.11.jar ExtractText file.pdf"]
    subprocess.call(cmd, shell=False)

示例:http://rextester.com/BCAZ47264

结果:declare @mydate datetime2 declare @converted varchar(100) set @mydate = cast('2018-07-02 00:01:22.000' as datetime2) set @converted = replace(convert(varchar, @mydate , 106), ' ', '-') select concat(left(@converted, 7), right(@converted, 2))

一个语句查询

02-Jul-18