What is right datatype with numbers along with '-'
With hyphens, it's a string, full stop!

You could store it as a BIGINT (without the hyphens) and format it using the hyphens on the client side - putting hyphens at 4 and 12. 

However, if the position of the hyphens varies, you'll have to store it as a string and not any form of number.

You should only store values as numbers if you're going to add/subtract/multiply or divide them - otherwise, they are strings and not "numbers" anyway! How do you perform mathematical operations with "numbers" which have hyphens?