SQL在两种格式不同时查找日期差异

时间:2015-10-30 04:50:13

标签: sql

我的日期存储格式如

18/1/2012 18:51:35

我必须找到一个日期和当前日期之间的天数差异。要获取当前日期,我使用getdate()返回以下

2015-10-30 10:01:25.493

目前我正在使用charindexsubstring函数制作datediff()中相等的格式。有没有更好的方法

3 个答案:

答案 0 :(得分:0)

我认为这已在这里得到解答:

Converting a date in MySQL from string field

在哪里(我认为)你基本上只是,(没有经过测试:/)

fileBody1

答案 1 :(得分:0)

以下是您正在寻找的MSSQL代码。

        using System;
        using System.Threading;
        using System.Threading.Tasks;

        namespace LeakTest {

            class Program {
                static void Main(string[] args) {
                    try {
                        var timeout = new CancellationTokenSource(TimeSpan.FromMilliseconds(100));
                        LongRunningTask().Wait(timeout.Token);
                    } catch (OperationCanceledException error) {                
                        //  handling timeout is logically okay, but expect nothing to be leaked
                    }
                    Console.WriteLine("Leaked Instances = {0}", DisposableResource.Instances);
                    Console.ReadKey();
                }

                static async Task LongRunningTask() {
                    using (var resource = new DisposableResource()) {
                        await Task.Run( () => Thread.Sleep(1000));
                    }
                }

                public class DisposableResource : IDisposable {
                    public static int Instances = 0;
                    public DisposableResource() {
                        Instances++;
                    }

                    public void Dispose() {
                        Instances--;
                    }
                }
            }
        }

尝试使用@column_date替换您的专栏。

希望它会对你有所帮助。

答案 2 :(得分:0)

假设您使用SQL Server,因为GETDATE()CHARINDEX()特定于MSSQL。

如果日期18/1/2012 18:51:35存储在VARCHAR中,您可以使用

DECLARE @DateFromTable VARCHAR(20)
SET @DateFromTable = '18/1/2012 18:51:35'

SELECT DATEDIFF(DAY, CONVERT(DATETIME,@DateFromTable, 103), GETDATE());

请参阅Cast and Convert functions here.