| Title | 
                
                    Test
                    Find
                    
                    Pattern Title
                 | 
            
            
                | Expression | 
                ^((((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9]))))[\-\/\s]?\d{2}(([02468][048])|([13579][26])))|(((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))[\-\/\s]?\d{2}(([02468][1235679])|([13579][01345789]))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$  | 
            
            
                | Description | 
                This regex will match SQL Server datetime values, allowing date only, allowing zero padded digits in month, day and hour, and will match leap years from 1901 up until 2099.  | 
            
            
                | Matches | 
                2/29/2004 | 04/01/2003 10:01:23 am | 03-20-1999  | 
            
            
                | Non-Matches | 
                2/29/2003 | 13/30/2001 10:05:00 pm | 12/32/2003  | 
            
            
                | Author | 
                
                    Rating:
                        
Not yet rated.
                    Sung Lee
                 | 
            
            
                | Source | 
                I took Scott Watermasysk's datetime regex, fixed bugs, added leap year logic | 
            
            
              | Your Rating | 
              
                
		       | 
            
        
    
 
    
    
     
        
                
	                Title: This reg exp is not working with javascript
	                Name: Ramakrishna
	                Date: 9/27/2004 10:35:28 PM
	                Comment: 
I tried to use this with javascript. but it has some problem .
                
                
            
                
	                Title: I fixed an bug
	                Name: Sung Lee
	                Date: 11/3/2003 1:33:36 PM
	                Comment: 
It used to accept 11/31/xxxx as a valid date.  I'll fix the ANSI format expression as well. Search for it if that's what you're looking for, don't use the one from my "ANSI format" message above.
                
                
            
                
	                Title: ANSI format
	                Name: Sung Lee
	                Date: 9/16/2003 5:41:57 PM
	                Comment: 
This one should be in ANSI format, same limitations as above:
^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[0-2]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[0-2]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$
                
                
            
                
	                Title: True SQL Server ANSI Format ?
	                Name: Legion Steve
	                Date: 9/16/2003 6:53:12 AM
	                Comment: 
This works great, but the datetime is not in the "true" ANSI SQL Server Format of YYYY-MM-DD.  Would it be possible to modify this to work that way?
Thanks!