使用millisec在varchar列中存储当前日期时间 - mysql

时间:2013-04-23 05:52:58

标签: sql-server date varchar

在varchar列中使用milisec存储当前日期时间 - mssql

我确实有一个varchar max列 我想在列中存储当前日期和mili秒 连接day-month-year-h-m-s-ms

喜欢

2304201310151515

3 个答案:

答案 0 :(得分:3)

试试这个: -

SELECT REPLACE(CONVERT(varchar(max), getdate(), 103), '/', '')+
REPLACE(CONVERT(varchar(max), getdate(), 114), ':', '')

答案 1 :(得分:0)

试试这个 -

DECLARE @date DATETIME
SELECT @date = GETDATE()

SELECT 
    REPLACE(CONVERT(VARCHAR(20), @date, 104), '.', '') + 
    LEFT(REPLACE(CONVERT(VARCHAR(20), @date, 114), ':', ''), 8)

DECLARE @text VARCHAR(20)
SELECT @text  = '2304201310151515'

SELECT 
    CAST(
        SUBSTRING(@text, 5, 4) + 
        SUBSTRING(@text, 3, 2) + 
        SUBSTRING(@text, 1, 2) AS DATETIME) 
    + 
    CAST(
        SUBSTRING(@text, 9, 2) + ':' + 
        SUBSTRING(@text, 11, 2) + ':' + 
        SUBSTRING(@text, 13, 2) + '.' + 
        SUBSTRING(@text, 15, 2) AS TIME)

答案 2 :(得分:0)

我不知道您使用varchar列的是什么,但我强烈建议您使用yyyymmddhhmmssmmm格式,因为它是可排序的。

declare @date datetime = '20130423 10:15:15.15' -- Works in SQL 2008
select replace(replace(replace(replace(convert(varchar /* defaults to 30 char*/, @date, 121)
        , '-', '')
        , ':', '')
        , '.', '')
        , ' ', '')

另外,如果你真的想要2位数毫秒,那么将convert函数返回的字符限制为varchar(22)。

declare @date datetime = '20130423 10:15:15.15' -- Works in SQL 2008
select replace(replace(replace(replace(convert(varchar(22), @date, 121)
        , '-', '')
        , ':', '')
        , '.', '')
        , ' ', '')