I am trying to convert the date string  Oct 21 2014 1:00 AM  to 2014-10-21 01:00:00 or something that SQL Server can understand.
            Asked
            
        
        
            Active
            
        
            Viewed 578 times
        
    0
            
            
        
        Venkata Krishna
        
- 14,926
 - 5
 - 42
 - 56
 
        LearningJrDev
        
- 911
 - 2
 - 8
 - 27
 
- 
                    2Is `Oct 21 2014 1:00 AM` a string or a datetime? – Tim Freese Mar 08 '16 at 21:30
 - 
                    How do you work with database? – Valentin Mar 08 '16 at 21:34
 - 
                    @TimFreese It is a string – LearningJrDev Mar 08 '16 at 21:39
 - 
                    1Please see answer here http://stackoverflow.com/questions/919244/converting-a-string-to-datetime – Mitesh Mar 08 '16 at 21:45
 
3 Answers
4
            var dateString = "Oct 21 2014 1:00 AM";
DateTime result;
DateTime.TryParse(dateString, out result);
var sqlDate = result.ToString("yyyy-MM-dd HH:mm:ss");
        Venkata Krishna
        
- 14,926
 - 5
 - 42
 - 56
 
2
            
            
        I'd argue that if you're using ADO.NET to communicate with your SQL Server, you shouldn't use a formatted date string as a query parameter. You should instead use a DateTime object. You can get it from your string by using either the DateTime.Parse or DateTime.TryParse methods:
DateTime date = DateTime.Parse("Oct 21 2014 1:00 AM"); // Use this as your query parameter.
However if you do decide to go with using a formatted string, the simplest way would be first parse it to as shown above, then you can use ToString with a format string overload, to format your date as you want.
To get your example format:
DateTime date = DateTime.Parse("Oct 21 2014 1:00 AM");
string formatted = DateTime.ToString("yyyy-MM-dd hh:mm:ss"); // 2014-10-21 01:00:00
        Gediminas Masaitis
        
- 3,172
 - 14
 - 35
 
- 
                    Given the string provided and assuming it won't change, this is the correct approach. – Gabe Mar 08 '16 at 22:01
 
0
            
            
        Please see answer here.
Converting a String to DateTime
DateTime.ParseExact may work for you to convert in DateTime and then you can use ToString(<format>) with format to convert it in required string.
- 
                    `DateTime.ParseExact` is only useful when you know the exact format beforehand, if you do not - it will fail. Also, assuming the string provided is the way the data will always be received, even `TryParse()` is redundant and he should use `Parse()` insead. `ParseExact` is only useful when the format is uncommon or of a different culture variation and won't parse with any other method. _Always_ use `.Parse()` or `.TryParse()` before resorting to `.ParseExact()`. – Gabe Mar 08 '16 at 21:54