Please start any new threads on our new 
    site at https://forums.sqlteam.com.  We've got lots of great SQL Server
    experts to answer whatever question you can come up with.
    
        
            
                
                    
                        
                            
                                | Author | 
                                
                                 Topic  | 
                             
                            
                                    | 
                                         marek_gd 
                                        Starting Member 
                                         
                                        
                                        6 Posts  | 
                                        
                                        
                                            
                                            
                                             Posted - 2014-12-04 : 10:08:49
                                            
  | 
                                             
                                            
                                            | Hi guys.I have a problem when I am converting bigint number into nvarchar.I want to generate a random bigint number between 1000000000000000 and 1900000000000000. Then I want to convert into nvarchar using cast or convert functions. Unfortunately none of these functions gives me a desired output.When I run the following statement:declare @acct as bigintselect @acct =ROUND(((1000000000000000 - 1900000000000000 -1) * RAND() + 1900000000000000), 0)	print @acct my output looks like: 1898492990346528 and that is fine.But when I want to cast it into nvarchar(16) using: declare @acct as nvarchar (16)select @acct =cast(ROUND(((1000000000000000 - 1900000000000000 -1) * RAND() + 1900000000000000), 0) as nvarchar(16))	print @acct my output looks like: 1.29673e+015.I want to have my nvarchar output looks like: '1898492990346528' . I want to get rid of dot and 'e' notation.I tried also:SELECT CONVERT(nvarchar(16),ROUND(((1000000000000000 - 1900000000000000 -1) * RAND() + 1900000000000000), 0)) but also had the same issue.Please help. | 
                                             
                                         
                                     | 
                             
       
                            
                       
                          
                            
                                    | 
                                     gbritton 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    2780 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2014-12-04 : 10:39:31
                                          
  | 
                                         
                                        
                                          | cast( cast(((1000000000000000 - 1900000000000000 -1) * RAND() + 1900000000000000) as bigint) as nvarchar(16))recall that RAND() returns a float and SQL will convert the "+ 1900000000000000" to a float to match.  You need to force it to biging  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                            
                                | 
                                    
                                      
                                     
                                    
                                 | 
                             
                         
                     | 
                 
             
         |